pthread_lock_global_np(3-thr) pthread_lock_global_np(3-thr)
NAME
pthreadlockglobalnp - Globalen Mutex sperren
SYNTAX
#include <pthread.h>
void pthreadlockglobalnp();
BESCHREIBUNG
Die Routine pthreadlockglobalnp() sperrt den globalen Mutex. Wenn
der globale Mutex während des Aufrufs dieser Routine durch einen
Thread von einem anderen Thread gehalten wird, wartet der Thread so
lange, bis der globale Mutex verfügbar wird.
Der Thread, der den globalen Mutex gesperrt hat, wird zu ihrem aktuel-
len Eigner und zwar für so lange, bis derselbe Thread die Sperre wie-
der aufgehoben hat. Diese Routine kehrt mit dem globalen Mutex im
gesperrten Status und mit dem aktuellen Thread als aktuellem Eigner
des globalen Mutex zurück.
Verwenden Sie den globalen Mutex beim Aufrufen eines Bibliothekspa-
kets, das nicht zur Ausführung in einer Multithread-Umgebung vorgese-
hen ist. (Sofern in der Dokumentation für eine der Bibliotheksfunktio-
nen nicht ausdrücklich angegeben ist, daß die Funktion für Multithrea-
ding geeignet ist, sollten Sie immer davon ausgehen, daß dies nicht
der Fall ist. In anderen Worten, gehen Sie zunächst immer davon aus,
daß es sich um eine nichteintrittsvariante Funktion handelt.
Der globale Mutex ist eine Sperre. Jeder Code, der eine Funktion auf-
ruft, die nicht als eintrittsvariant bekannt ist, verwendet dieselbe
Sperre. Hierdurch werden Abhängigkeiten unter den Threads vermieden,
die Bibliotheksfunktionen und solche Funktionen aufrufen, die wiederum
andere Funktionen aufrufen, usw..
Der globale Mutex ist ein rekursiver Mutex. Ein Thread, der einen glo-
balen Mutex gesperrt hat, kann diesen wieder entsperren, ohne einen
Deadlock zu verursachen. (Der sperrende Thread muß die Routine
pthreadunlockglobalnp() so oft aufrufen, wie er zuvor die vorlie-
gende Routine aufgerufen hat, um einem anderen Thread das Sperren des
globalen Mutex zu ermöglichen.)
Bei dieser Routine handelt es sich um eine neue Grundfunktion.
RÜCKGABEWERTE
Es wird kein Wert zurückgegeben.
SIEHE AUCH
pthreadmutexlock(3-thr), pthreadmutexunlock(3-thr),
pthreadmutexattrsetkindnp(3-thr), pthreadunlockglobalnp(3-thr).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98