-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!newsfeed.pionier.net.p
l!2.eu.feeder.erje.net!feeder.erje.net!news.uzoreto.com!aioe.org!.POSTED.nyPK7k
8oeDafdNpooDsxZQ.user.gioia.aioe.org!not-for-mail
From: Mateusz Viste <m...@x...invalid>
Newsgroups: pl.comp.programming
Subject: Re: Integracja bibliotek event-based
Date: Thu, 11 Jun 2020 10:37:32 +0200
Organization: . . .
Lines: 78
Message-ID: <20200611103732.69e48f11@mateusz>
References: <5...@g...com>
<20200609094640.04ee0ae2@mateusz>
<a...@g...com>
<20200610105625.30b3dad0@mateusz>
<e...@g...com>
NNTP-Posting-Host: nyPK7k8oeDafdNpooDsxZQ.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Complaints-To: a...@a...org
X-Notice: Filtered by postfilter v. 0.9.2
Xref: news-archive.icm.edu.pl pl.comp.programming:214991
[ ukryj nagłówki ]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
Następne wpisy z tego wątku
- 11.06.20 20:00 Maciej Sobczak
- 11.06.20 21:58 Mateusz Viste
- 12.06.20 20:55 Maciej Sobczak
- 13.06.20 09:33 Mateusz Viste
- 13.06.20 21:52 Maciej Sobczak
- 14.06.20 13:55 Mateusz Viste
- 14.06.20 20:52 Maciej Sobczak
Najnowsze wątki z tej grupy
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
- Ada-Europe Conference - 6 March Extended Final Deadline
Najnowsze wątki
- 2024-04-19 Warszawa => Senior Account Manager <=
- 2024-04-19 Katowice => Technical Leader (Java Background) <=
- 2024-04-19 Wrocław => Dyrektor Sprzedaży (branża usług/produktów IT) <=
- 2024-04-19 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-04-19 Samochód w ogniu
- 2024-04-19 Warszawa => Inżynier DevOps (projekt JP) <=
- 2024-04-19 Gdańsk => Spedytor Międzynarodowy <=
- 2024-04-19 Kraków => Java Developer <=
- 2024-04-19 Wrocław => Lider Serwisu/Programista PLC z językiem niemieckim <=
- 2024-04-19 uczcie się Anglicy
- 2024-04-19 Co sciaga kretynow
- 2024-04-19 Uziom
- 2024-04-18 Prokurator Wrzosek jest już w porządku [Bodnatura po-praworządności]
- 2024-04-18 Warszawa => Sprzedawca usług rekrutacyjnych <=
- 2024-04-18 Jak uszkodzona sonda lambda wpływa na dawkowanie paliwa?