EventLoop_Stop – funkce
Hlavička: #include <applibs/eventloop.h>
Zastaví spuštění EventLoop a způsobí , že EventLoop_Run vrátí řízení volajícímu.
int EventLoop_Stop(EventLoop *el);
Parametry
-
el
Ukazatel naEventLoop
objekt.
Vrácená hodnota
Vrátí hodnotu 0 pro úspěch nebo -1 pro selhání. V tomto případě errno
je nastavená na chybovou hodnotu.
Poznámky
Tuto funkci lze volat ze zpětného volání události nebo jiného vlákna, aby se zastavila aktuální smyčka a vrátila se z EventLoop_Run
.
Pokud se volá ze zpětného volání, EventLoop_Run se synchronně zastaví. Jakmile EventLoop_Stop vrátí, nebudou EventLoop_Run zpracovány žádné další události. EventLoop_Run pak zastaví zpracování událostí a vrátí se k volajícímu.
Pokud je volán z jiného vlákna, EventLoop_Run
zastaví se asynchronně a vrátí se ke svému volajícímu. V důsledku toho EventLoop_Run
může i po EventLoop_Stop
vrácení zpracovat několik událostí.
Objekt EventLoop
je objekt s jedním vláknem. Pokus o použití EventLoop
z více vláken současně bude mít za následek nedefinované chování. Jedinou výjimkou je volání EventLoop_Stop.