Dela via


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

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.