pthread_lock_global_np(3thr)pthread_lock_global_np(3thr)Namepthread_lock_global_np - Locks the global mutex. If the global mutex
is held by another thread, this routine causes the thread to wait for
the global mutex to become available
Syntax
#include <pthread.h>
void pthread_lock_global_np ();
Arguments
None
Description
This routine locks the global mutex. If the global mutex is currently
held by another thread when a thread calls this routine, the thread
waits for the global mutex to become available.
The thread that has locked the global mutex becomes its current owner
and remains the owner until the same thread has unlocked it. This rou‐
tine returns with the global mutex in the locked state and with the
current thread as the global mutex's current owner.
Use the global mutex when calling a library package that is designed to
run in a multithreaded environment. (Unless the documentation for a
library function specifically states that it is compatible with multi‐
threading, assume that it is not compatible; in other words, assume it
is nonreentrant.)
The global mutex is one lock. Any code that calls any function that
isn't known to be reentrant uses the same lock. This prevents depen‐
dencies among threads calling library functions and those functions
calling other functions, and so on.
The global mutex is a recursive mutex. A thread that has locked the
global mutex can relock it without deadlocking. (The locking thread
must call pthread_unlock_global_np as many times as it called this rou‐
tine to allow another thread to lock the global mutex.)
Return Values
None
pthread_lock_global_np(3thr)