pthread_lock_global_np(3) [osf1 man page]
pthread_lock_global_np(3) Library Functions Manual pthread_lock_global_np(3) NAME
pthread_lock_global_np - Locks the DECthreads global mutex. LIBRARY
DECthreads POSIX 1003.1c Library (libpthread.so) SYNOPSIS
#include <pthread.h> int pthread_lock_global_np(void); STANDARDS
None PARAMETERS
None DESCRIPTION
This routine locks the DECthreads global mutex. If the global mutex is currently held by another thread when a thread calls this routine, the calling thread waits for the global mutex to become available and then locks it. The thread that has locked the global mutex becomes its current owner and remains the owner until the same thread has unlocked it. This routine returns with the global mutex in the locked state and with the current thread as the global mutex's current owner. Use the DECthreads global mutex when calling a library package that is not designed to run in a multithreaded environment. Unless the doc- umentation for a library function specifically states that it is thread safe, 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 is not known to be reentrant should use the same lock. This prevents problems resulting from dependencies among threads that call 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(3) as many times as it called this routine, to allow another thread to lock the global mutex. RETURN VALUES
If an error condition occurs, this routine returns an integer value indicating the type of error. Possible return values are as follows: Successful completion. ERRORS
None RELATED INFORMATION
Functions: pthread_unlock_global_np(3) Manuals: Guide to DECthreads and Programmer's Guide delim off pthread_lock_global_np(3)
Check Out this Related Man Page
pthread_mutexattr_setpshared(3) Library Functions Manual pthread_mutexattr_setpshared(3) NAME
pthread_mutexattr_setpshared - Sets the process-shared attribute of a mutex attributes object. LIBRARY
DECthreads POSIX 1003.1c Library (libpthread.so) SYNOPSIS
#include <pthread.h> int pthread_mutexattr_setpshared( pthread_mutexattr_t *attr, int pshared); PARAMETERS
Address of the mutex attributes object whose process-shared attribute is to be set. Value to set in the process-shared attribute of attr. Must be the value PTHREAD_PROCESS_SHARED, to permit access to the mutex in by any thread in any process that can access the memory where the mutex object is allocated, or PTHREAD_PROCESS_PRIVATE, to permit access to the mutex only by threads in the same process as the thread that initialized the mutex object. DESCRIPTION
This routine uses the value in pshared to set the process-shared attribute in the mutex attributes object referenced by attr. The object referenced by attr must be initialized before this routine is called. The value of pshared must be either PTHREAD_PROCESS_SHARED or PTHREAD_PROCESS_PRIVATE, as defined in the pthread.h include file. Setting the process-shared attribute to PTHREAD_PROCESS_PRIVATE permits a mutex to be operated upon by threads created within the same process as the thread that initialized the mutex. If threads of differing processes attempt to operate on such a mutex, the behavior is undefined. The default value of the process-shared attribute of a mutex attributes object is PTHREAD_PROCESS_PRIVATE. Setting the process-shared attribute to PTHREAD_PROCESS_SHARED permits a mutex to be operated upon by any thread that has access to the memory where the mutex is allocated, even if the mutex is allocated in memory that is shared by multiple processes. RETURN VALUES
If an error condition occurs, this routine returns an integer value indicating the type of error. Possible return values are as follows: Successful completion. The value specified by attr is not a valid mutex attributes object, or the new value specified for the attribute is outside the range of legal values for that attribute. ERRORS
None RELATED INFORMATION
Functions: pthread_mutexattr_getpshared(3), pthread_mutexattr_init(3) Manuals: Guide to DECthreads and Programmer's Guide delim off pthread_mutexattr_setpshared(3)