pthread_cancel(3-thr) pthread_cancel(3-thr)
NAME
pthreadcancel - Die Beendigung der Ausführung des Thread selbst oder
eines anderen Thread anfordern
SYNTAX
#include <pthread.h>
int pthreadcancel(pthreadt thread);
PARAMETER
thread Der Thread, der eine Abbruchanforderung empfängt.
BESCHREIBUNG
Die Routine pthreadcancel() sendet eine Abbruchanforderung an den
angegebenen Thread. Hierbei handelt es sich um einen Mechanismus, bei
dem ein aufrufender Thread entweder sich selbst oder dem aufgerufenen
Thread mitteilt, die Ausführung so schnell wie möglich zu beenden.
Durch Die Angabe einer Abbruchanforderung ist noch nicht gewährlei-
stet, daß der abzubrechende Thread diese Anforderung auch empfängt
oder bearbeitet. Der abzubrechende Thread kann die Verarbeitung der
Abbruchanforderung nach deren Erhalt auch zurückstellen. Geht eine
solche Anforderung zum Beispiel während einer wichtigen Operation ein,
kann der abzubrechende Thread die Ausführung fortsetzen, wenn der
gerade durchgeführte Prozeß zu diesem Zeutpunkt nicht unterbrochen
werden kann.
Aufgrund von Übertragungsverzögerungen kann der aufrufende Thread
lediglich davon ausgehen, daß ein Abbruch irgendwann im bezeichneten
Thread ansteht (sofern der Thread nicht vorher beendet wird). Außerdem
ist nicht garantiert, daß eine anstehende Abbruchanforderung auch
übergeben werden muß, da die Übergabe nicht vom aufrufenden sondern
vom angegebenen Thread gesteuert wird.
Die Verarbeitung der Beendigung beim Eingang einer Abbruchanforderung
an einen Thread gleicht der Routine pthreadexit(). Noch nicht erle-
digte Bereinigungsroutinen im Zusammenhang mit dem Ziel-Thread werden
noch ausgeführt und für jeden mit dem Ziel-Thread verbundenen Thread
wird ein Status -1 ausgegeben.
Diese Routine wird bei der Implementierung der Anweisung abort von Ada
und anderen Sprachen (oder softwaredefinierten Konstruktionen) zur
Anforderung von Thread-Abbrüchen bevorzugt.
Die Ergebnisse dieser Routine sind unvorhersehbar, wenn der in thread
angegebene Wert auf einen Thread verweist, der derzeit nicht exi-
stiert.
RÜCKGABEWERTE
Wenn die Funktion fehlschlägt, kann errno auf einen der folgenden
Werte gesetzt werden:
EINVAL Der angegebene Thread ist ungültig.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
pthread_cancel(3-thr) pthread_cancel(3-thr)
ERSCH Der angegebene Thread verweist nicht auf einen derzeit exi-
stierenden Thread.
SIEHE AUCH
pthreadexit(3-thr), pthreadjoin(3-thr),
pthreadsetasynccancel(3-thr), pthreadsetcancel(3-thr),
pthreadtestcancel(3-thr).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98