funktionen EventLoop_Stop
Sidhuvud: #include <applibs/eventloop.h>
Förhindrar att EventLoop körs och gör att EventLoop_Run återgår kontrollen till uppringaren.
int EventLoop_Stop(EventLoop *el);
Parametrar
-
el
En pekare till objektetEventLoop
.
Returvärde
Returnerar 0 för lyckat resultat, eller -1 för fel, i vilket fall errno
är inställt på felvärdet.
Anmärkningar
Den här funktionen kan anropas från en återuppringning av en händelse eller en annan tråd för att stoppa den aktuella slingan och återgå från EventLoop_Run
.
Om en återuppringning anropas slutar EventLoop_Run synkront. När EventLoop_Stop returnerar bearbetas inga ytterligare händelser av EventLoop_Run. EventLoop_Run slutar sedan bearbeta händelser och återgår till uppringaren.
Om den anropas från en annan tråd EventLoop_Run
stoppas den asynkront och återgår till uppringaren. Som ett resultat EventLoop_Run
kan fortfarande bearbeta några händelser efter EventLoop_Stop
returer.
Ett EventLoop
objekt är ett enkeltrådat objekt. Ett försök att använda EventLoop
från flera trådar samtidigt resulterar i odefinierat beteende. Det enda undantaget är ett anrop till EventLoop_Stop.