Freigeben über


EventLoop_Stop-Funktion

Header: #include <applibs/eventloop.h>

Beendet die Ausführung von EventLoop und bewirkt , dass EventLoop_Run die Steuerung an den Aufrufer zurückgibt.

int EventLoop_Stop(EventLoop *el);

Parameter

  • el Ein Zeiger auf das EventLoop -Objekt.

Rückgabewert

Gibt 0 für erfolg oder -1 für Fehler zurück. In diesem Fall errno wird auf den Fehlerwert festgelegt.

Bemerkungen

Diese Funktion kann von einem Ereignisrückruf oder einem anderen Thread aufgerufen werden, um die aktuelle Schleife zu beenden und von EventLoop_Runzurückzugeben.

Wenn von einem Rückruf aufgerufen wird, wird EventLoop_Run synchron beendet. Sobald EventLoop_Stop zurückgegeben wird, werden keine weiteren Ereignisse von EventLoop_Run verarbeitet. EventLoop_Run beendet dann die Verarbeitung von Ereignissen und kehrt zu seinem Aufrufer zurück.

Wenn von einem anderen Thread aufgerufen wird, EventLoop_Run wird asynchron beendet und zu seinem Aufrufer zurückkehren. Daher EventLoop_Run kann nach der Rückgabe noch einige Ereignisse EventLoop_Stop verarbeitet werden.

Ein EventLoop Objekt ist ein Singlethread-Objekt. Ein Versuch, mehrere Threads gleichzeitig zu verwenden EventLoop , führt zu einem nicht definierten Verhalten. Die einzige Ausnahme ist ein Aufruf von 'EventLoop_Stop.