Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pthread_mutex_lock(3-thr) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

pthread_mutex_lock(3-thr)                         pthread_mutex_lock(3-thr)

NAME
     pthreadmutexlock - Einen nicht gesperrten Mutex sperren

SYNTAX
     #include <pthread.h>

     int pthreadmutexlock(pthreadmutext *mutex);

PARAMETER
     mutex     Der Mutex, der gesperrt wird.

BESCHREIBUNG
     Die Routine pthreadmutexlock() sperrt einen Mutex. Ist ein Mutex
     bereits gesperrt, wenn ein Thread diese Routine aufruft, wartet der
     Thread so lange, bis der Mutex freigegeben wird.

     Der Thread, der den Mutex gesperrt hat, wird zu dessen Eigner und
     bleibt dies so lange, bis derselbe Thread den Mutex wieder entsperrt
     hat. Wenn diese Routine zurückkehrt, befindet sich der Mutex im
     gesperrten Status, und der aktuelle Thread ist der derzeitige Eigner
     des Mutex.

     Wenn Sie in einem Aufruf von pthreadmutexattrsetkindnp() einen
     schnellen (fast) Mutex angegeben haben, kann dies zu einem Deadlock
     führen, wenn der aktuelle Eigner eines Mutex diese Routine aufruft, um
     einen Mutex ein zweites Mal zu sperren. Wenn Sie in einem Aufruf von
     pthreadmutexattrsetkindnp() einen rekursiven Mutex angegeben haben,
     kann der Eigner eines Mutex denselben Mutex erneut sperren, ohne den
     Thread zu blockieren. Wenn Sie in einem Aufruf von
     pthreadmutexattrsetkindnp() einen nicht rekursiven Mutex angegeben
     haben, wird ein Fehler zurückgegeben, und der Thread wird nicht blok-
     kiert, wenn der aktuelle Eigner eines Mutex diese Routine aufruft, um
     den Mutex ein zweites Mal zu sperren.

     Die Prozeßumschaltung (preemption) eines Thread mit niedriger Priori-
     tät, der einen Mutex sperrt, führt möglicherweise dazu, daß Threads
     mit höherer Priorität, die auf denselben Mutex warten, auf unbestimmte
     Zeit blockiert werden. Die Ausführung des wartenden Thread mit der
     höheren Priorität wird so lange blockiert, wie noch eine ausreichende
     Anzahl lauffähiger Threads beliebiger Priorität zwischen den Werten
     für niedrige und hohe Priorität vorliegt. Eine Umkehrung der Priorität
     tritt auf, wenn eine Ressource von mehreren Threads mit unterschiedli-
     chen Prioritäten gemeinsam benutzt wird.

RÜCKGABEWERTE
     Wenn die Funktion fehlschlägt, kann errno auf einen der folgenden
     Werte gesetzt werden:

     EINVAL    Der durch mutex angegebene Wert ist ungültig.

     EDEADLK   Es liegt eine Deadlock-Bedingung vor.




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

pthread_mutex_lock(3-thr)                         pthread_mutex_lock(3-thr)

SIEHE AUCH
     pthreadmutexdestroy(3-thr), pthreadmutexinit(3-thr),
     pthreadmutextrylock(3-thr), pthreadmutexunlock(3-thr),
     pthreadmutexattrsetkindnp(3-thr).


















































Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026