Sdílet prostřednictvím


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 na EventLoop 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.