Funzione EventLoop_StopEventLoop_Stop Function

Intestazione: #include <applibs/eventloop.h>Header: #include <applibs/eventloop.h>

Arresta l'esecuzione dell'oggetto EventLoop e fa in modo che EventLoop_Run restituisca il controllo al chiamante.Stops the EventLoop from running and causes EventLoop_Run to return control to its caller.

int EventLoop_Stop(EventLoop *el);

ParametriParameters

  • el Un puntatore all'oggetto EventLoop.el A pointer to the EventLoop object.

Valore restituitoReturn value

Restituisce 0 per l'esito positivo o-1 per l'esito negativo, nel qual caso errno viene impostato sul valore di errore.Returns 0 for success, or -1 for failure, in which case errno is set to the error value.

OsservazioniRemarks

Questa funzione può essere chiamata da un callback di evento o da un altro thread per arrestare il ciclo corrente e uscire da EventLoop_Run.This function can be called from an event callback or another thread to stop the current loop and return from EventLoop_Run.

Se viene chiamata da un callback, la funzione EventLoop_Run si arresterà in modo sincrono.If called from a callback, EventLoop_Run will stop synchronously. Quando si esce da EventLoop_Stop, non vengono elaborati altri eventi da EventLoop_Run.Once EventLoop_Stop returns, no further events will be processed by EventLoop_Run. EventLoop_Run interromperà quindi l'elaborazione degli eventi e tornerà al chiamante.EventLoop_Run will then stop processing events and return to its caller.

Se viene chiamata da un altro thread, EventLoop_Run si arresterà in modo asincrono e tornerà al chiamante.If called from another thread, EventLoop_Run will stop asynchronously and return to its caller. Di conseguenza, EventLoop_Run potrebbe ancora elaborare alcuni eventi dopo che viene restituito EventLoop_Stop.As a result, EventLoop_Run may still process a few events after EventLoop_Stop returns.

Un oggetto EventLoop è a thread singolo.An EventLoop object is a single-threaded object. Il tentativo di usare EventLoop da più thread contemporaneamente genererà un comportamento indefinito.An attempt to use EventLoop from multiple threads simultaneously will result in undefined behavior. L'unica eccezione è una chiamata a 'EventLoop_Stop.The only exception is a call to `EventLoop_Stop.