pthread_setcancel(3-thr) pthread_setcancel(3-thr)
NAME
pthreadsetcancel - Allgemeine Abbruchmöglichkeit des aktuellen Thread
aktivieren/deaktivieren
SYNTAX
#include <pthread.h>
int pthreadsetcancel(int state);
PARAMETER
state Status der allgemeinen Abbruchmöglichkeit, der für den auf-
rufenden Thread gesetzt ist. Bei Rückkehr der Routine wird
der vorherige Status für die allgemeine Abbruchmöglichkeit
ausgegeben. Gültige Werte sind:
CANCELON Die allgemeine Abbruchmöglichkeit ist akti-
viert.
CANCELOFF Die allgemeine Abbruchmöglichkeit ist deakti-
viert.
BESCHREIBUNG
Die Routine pthreadsetcancel() aktiviert bzw. deaktiviert die allge-
meine Abbruchmöglichkeit des aktuellen Thread und gibt den vorherigen
Status für die allgemeine Abbruchmöglichkeit zurück.
Wenn die allgemeine Abbruchmöglichkeit auf CANCELOFF gesetzt ist,
kann eine Abbruchanforderung nicht an den Thread übergeben werden,
auch dann nicht, wenn eine abbruchfähige Routine aufgerufen oder die
asynchrone Abbruchmöglichkeit aktiviert wird.
Bei der Erstellung eines Thread wird der Status der allgemeinen
Abbruchmöglichkeit standardmäßig auf CANCELON gesetzt.
Mögliche Risiken beim Deaktivieren der Abbruchmöglichkeit
Die wichtigste Verwendung von Abbrüchen ist, zu verhindern, daß War-
teoperationen auf unbestimmte Zeit andauern. Für einen Thread, der auf
eine Netzwerkverbindung wartet, die möglicherweise erst nach Tagen
(oder niemals) antwortet, wird normalerweise die Abbruchmöglichkeit
aktiviert.
Wenn die Abbruchmöglichkeit allerdings deaktiviert wird, kann keine
Routine mehr abgebrochen werden. In diesem Fall müssen alle Wartevor-
gänge normal abgeschlossen werden, bevor eine Abbruchanforderung über-
geben werden kann. Dies führt dazu, daß das Programm die Verarbeitung
stoppt, und der Benutzer die Operation nicht abbrechen kann.
Vor Deaktivierung der Abbruchmöglichkeit muß also sichergestellt wer-
den, daß keine langen Wartezeiten auftreten können, oder es aus ande-
ren Gründen erforderlich wird, Abbruchanforderungen um diesen bestimm-
ten Codebereich zu verschieben.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
pthread_setcancel(3-thr) pthread_setcancel(3-thr)
RÜCKGABEWERTE
Bei erfolgreicher Ausführung wird der vorherige Status der allgemeinen
Abbruchmöglichkeit zurückgegeben. Wenn die Funktion fehlschlägt, wird
-1 zurückgegeben. Im folgenden werden die möglichen Rückgabewerte und
die entsprechenden Werte (falls vorhanden) für errno aufgeführt:
CANCELON Die allgemeine Abbruchmöglichkeit war aktiviert.
CANCELOFF Die allgemeine Abbruchmöglichkeit war deaktiviert.
EINVAL Der angegebene Status ist weder CANCELON noch
CANCELOFF.
SIEHE AUCH
pthreadcancel(3-thr), pthreadsetasynccancel(3-thr),
pthreadtestcancel(3-thr).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98