The pthread_mutex_init() function initializes the
mutex referenced by mutex with attributes specified
by attr. If attr is
NULL, the default mutex attributes are used;
the effect is the same as passing the address of a default mutex attributes
object. Upon successful initialization, the state of the mutex becomes initialized
and unlocked.
Attempting to initialize an already initialized mutex results in undefined
behavior.
The pthread_mutex_destroy() function destroys the
mutex object referenced by mutex; the mutex object
becomes, in effect, uninitialized. A destroyed mutex object can be re-initialized
using pthread_mutex_init(); the results of otherwise
referencing the object after it has been destroyed are undefined.
It is safe to destroy an initialized mutex that is unlocked. Attempting
to destroy a locked mutex results in undefined behavior.
In cases where default mutex attributes are appropriate, the macro PTHREAD_MUTEX_INITIALIZER can be used to
initialize mutexes that are statically allocated. The effect is equivalent
to dynamic initialization by a call to pthread_mutex_init()
with parameter attr specified as NULL, except that no error checks are performed.
|