Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: vyvojar 17. 12. 2017, 16:49:24

Název: Reentrantní event loop.
Přispěvatel: vyvojar 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?
Název: Re:Reentrantní event loop.
Přispěvatel: Honza 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.
Název: Re:Reentrantní event loop.
Přispěvatel: Ondrej Nemecek 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.