Reentrantní event loop.

vyvojar

Reentrantní event loop.
« kdy: 17. 12. 2017, 16:49:24 »
Vývíjím jeden frameworčík a přemýšlím, jestli je potřeba reentrantní event loop nebo ne. Takové typické použití jsou dialogová okna ano/ne.

Kód: [Vybrat]
bool result = Dialog.Show() // blokující volání, dokud není interakce s dialogem u konce.
V podstatě cokoliv tohoto typu by mělo být možné řešit pomocí nějakého future/callbacku, takže je asi dobrý spíš nemít reentrantní event loop, co myslíte?


Honza

Re:Reentrantní event loop.
« Odpověď #1 kdy: 17. 12. 2017, 17:57:25 »
Pokud se zůstane u jednoho vlákna, a aplikace nebude volat žádnou funkci z externí knihovny, stačí callback. Jinak může být ta funkce sama o sobě také blokující, ale již nad ní nemám kontrolu, a navíc není zaručeno, že výsledek bude ze stejného vlákna.

Re:Reentrantní event loop.
« Odpověď #2 kdy: 17. 12. 2017, 21:21:34 »
Vývíjím jeden frameworčík a přemýšlím, jestli je potřeba reentrantní event loop nebo ne. Takové typické použití jsou dialogová okna ano/ne.

Ještě bych se zamyslel co se stane, když tam ten dialog bude viset třeba půl dne. Může třeba vytimeoutovat připojení někam apod.