Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #34014

Re: Integracja bibliotek event-based

From Mateusz Viste <mateusz@xyz.invalid>
Newsgroups pl.comp.programming
Subject Re: Integracja bibliotek event-based
Date 2020-06-11 10:37 +0200
Organization . . .
Message-ID <20200611103732.69e48f11@mateusz> (permalink)
References <5d642286-413d-47db-91b0-c689bbe167f4o@googlegroups.com> <20200609094640.04ee0ae2@mateusz> <aa97820e-825e-4efe-b403-2c1f496dc7ffo@googlegroups.com> <20200610105625.30b3dad0@mateusz> <e642682f-3296-4377-85b1-4c7dee0359b4o@googlegroups.com>

Show all headers | View raw


2020-06-10 o 14:19 -0700, Maciej Sobczak napisał:
> Jest gorzej. To nie muszą być sockety. Np. system QNX ma fajny
> mechanizm komunikacji IPC, który istnieje poza przestrzenią
> deskryptorów plików. A ktoś inny będzie się komunikował przez pamięć
> dzieloną.

Trzymajmy się założeń: była mowa o bibliotece "do http", innej "do
tweetera" i trzeciej "baza danych". Każda z nich raczej (?) opiera się
na socketach.

> No i nie możemy zakładać, że socket jest jeden, albo że ciągle ten
> sam, itd. Straszne komplikacje.

Jeśli jest ten sam to komplikacji nie ma - jeśli się urywa to
biblioteka zwraca błąd i trzeba zainicjalizować na nowo. Jeśli
natomiast socket się tworzy nowy przy każdym zawołaniu (np. sprawdzanie
tweetów via nową sesję ssl za każdym razem), to każde sprawdzenia
powinno być regularnie wywoływane przez program.

> dodatkowy argument, żeby czekać. Tak jest w YAMI4. Wtedy pętla
> użytkownika nie musi być busy - po prostu blokuje się, jak nie ma nic
> do roboty.

Po bardzo pobieżnym przejrzeniu rozumiem to tak, że inspirel oczekuje
że stworzysz swój własny wątek specjalnie dla wołania ich biblioteki:

 "All activity has to be driven by the application, which is supposed to
  'lease' one of its threads for doing the I/O work on behalf of the
  agent. This is achieved by calling the Do_Some_Work procedure in Ada
  or the do_some_work function in C++.

  The 'do some work' routine performs a single unit of work and
  returns to the caller. In a typical application it will be called in
  a tight loop."

W takiej sytuacji niewiele można zrobić. Patrz niżej.

> > Ale to tylko jeśli biblioteki faktycznie nie udostępniają
> > jakichkolwiek mechanizmów sygnalizacji swoich potrzeb.  
> 
> Dobry trop.
> To w jaki sposób chciałbyś być poinformowany, że biblioteka ma
> potrzebę?
> 
> Przypominam, że mamy 3 biblioteki. Przyjmijmy wersję idealną, że
> wszystkie 3 będą mieć ten mechanizm. Jaki?

Idealnie? No to chcę sam obsługiwać kanał danych (socket, IPC,
whatever), a bibliotekę będę wołał tylko po to, żeby te dane
obrobić/przetłumaczyć. Alternatywnie - niech biblioteka da dostęp do
socketów, wówczas wiem, że jak coś się zmieni na kablu to powinien
zawołać kogoś do obsługi. Ostatnia opcja: niech biblioteka da jakiś
swój blokujący "wait_for_event()", sama niech blokuje w sposób
eko-mądry i zależny od implementacji, a ja sobie ją wywołam w osobnym
wątku. 3 biblioteki = 3 wątki, da się przeżyć.

Mateusz

Back to pl.comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Integracja bibliotek event-based Maciej Sobczak <see.my.homepage@gmail.com> - 2020-06-08 14:58 -0700
  Re: Integracja bibliotek event-based heby <heby@poczta.onet.pl> - 2020-06-09 00:32 +0200
    Re: Integracja bibliotek event-based heby <heby@poczta.onet.pl> - 2020-06-09 00:38 +0200
  Re: Integracja bibliotek event-based Mateusz Viste <mateusz@xyz.invalid> - 2020-06-09 09:46 +0200
    Re: Integracja bibliotek event-based Maciej Sobczak <see.my.homepage@gmail.com> - 2020-06-09 13:58 -0700
      Re: Integracja bibliotek event-based heby <heby@poczta.onet.pl> - 2020-06-09 23:18 +0200
      Re: Integracja bibliotek event-based Mateusz Viste <mateusz@xyz.invalid> - 2020-06-10 10:56 +0200
        Re: Integracja bibliotek event-based Maciej Sobczak <see.my.homepage@gmail.com> - 2020-06-10 14:19 -0700
          Re: Integracja bibliotek event-based Mateusz Viste <mateusz@xyz.invalid> - 2020-06-11 10:37 +0200
            Re: Integracja bibliotek event-based Maciej Sobczak <see.my.homepage@gmail.com> - 2020-06-11 11:00 -0700
              Re: Integracja bibliotek event-based Mateusz Viste <mateusz@xyz.invalid> - 2020-06-11 21:58 +0200
                Re: Integracja bibliotek event-based Maciej Sobczak <see.my.homepage@gmail.com> - 2020-06-12 11:55 -0700
                Re: Integracja bibliotek event-based Mateusz Viste <mateusz@xyz.invalid> - 2020-06-13 09:33 +0200
                Re: Integracja bibliotek event-based Maciej Sobczak <see.my.homepage@gmail.com> - 2020-06-13 12:52 -0700
                Re: Integracja bibliotek event-based Mateusz Viste <mateusz@xyz.invalid> - 2020-06-14 13:55 +0200
                Re: Integracja bibliotek event-based Maciej Sobczak <see.my.homepage@gmail.com> - 2020-06-14 11:52 -0700

csiph-web