Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)

System Functions (n - p) pthread_mutex_init(2)
H06.21/J06.10 or later RVUs.
To use this function in a 64-bit threaded application that uses the POSIX User Thread Model
library on systems running H06.24 or later RVUs or J06.13 or later RVUs, you must perform all
of the following tasks:
Include the pthread.h header file in the application.
Compile the application using the _PUT_MODEL_ feature test macro or equivalent
compiler command option.
Compile the application using the -Wlp64 compiler command option.
Link the application to the yputdll library (/G/system/zdllnnn/yputdll).
To use this function in a threaded application that uses the Standard POSIX Threads library on
systems running H06.21 or later RVUs or J06.10 or later RVUs, you must perform all of the fol-
lowing tasks:
Include the spthread.h header file in the application.
Compile the application using the _SPT_MODEL_ feature test macro or equivalent
compiler command option.
Link the application to the zsptdll library (/G/system/zdllnnn/zsptdll).
NOTES
Use the PTHREAD_MUTEX_INITIALIZER macro to statically initialize a mutex without
calling this function. Use this macro as follows:
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
Only normal mutexes can be statically initialized.
RETURN VALUES
If an error condition occurs, this function returns an integer value indicating the type of error, the
mutex is not initialized, and the contents of mutex are undefined. Possible return values are:
0 Successful completion.
[EAGAIN] The system lacks the necessary resources to initialize the mutex.
[EBUSY] The system detected an attempt to reinitialize a mutex (an attempt to initialize a
previously initialized but not yet destroyed mutex).
[EINVAL] The value specified by the attr parameter is invalid.
[ENOMEM] Insufficient memory exists to initialize the mutex.
[EPERM] The caller does not have the required privileges to perform the operation.
RELATED INFORMATION
Functions: pthread_mutex_destroy(2), pthread_mutex_lock(2), pthread_mutex_trylock(2),
pthread_mutex_unlock(2), pthread_mutexattr_destroy(2), pthread_mutexattr_init(2).
STANDARDS CONFORMANCE
Interfaces documented on this reference page conform to the following industry standards:
IEEE Std 1003.1-2004, POSIX System Application Program Interface
The use of the header file spthread.h is an HP exception to the POSIX standard.
527186-023 Hewlett-Packard Company 5155