pthread_mutex_destroy(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

pthread_mutex_destroy(3c)

pthread_mutex_init(3C)   Standard C Library Functions   pthread_mutex_init(3C)

NAME
       pthread_mutex_init, pthread_mutex_destroy - initialize or destroy a mu‐
       tex

SYNOPSIS
       #include <pthread.h>

       int pthread_mutex_init(pthread_mutex_t *restrict mutex,
            const pthread_mutexattr_t *restrict attr);


       int pthread_mutex_destroy(pthread_mutex_t *mutex);


       pthread_mutex_t mutex= PTHREAD_MUTEX_INITIALIZER;


       pthread_mutex_t mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;


       pthread_mutex_t mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;

DESCRIPTION
       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 ad‐
       dress of a default mutex attributes object. Upon successful initializa‐
       tion, the state of the mutex becomes initialized and unlocked.


       Except for robust mutexes, attempting to initialize an already initial‐
       ized mutex results in undefined behavior.


       The pthread_mutex_destroy() function destroys the mutex  object  refer‐
       enced  by  mutex; the mutex object becomes, in effect, uninitialized. A
       destroyed  mutex  object  can  be  re-initialized   using   pthread_mu‐
       tex_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  initializa‐
       tion by a call to pthread_mutex_init() with parameter attr specified as
       NULL, except that no error checks are performed.


       In  cases  where  recursive mutex attributes are appropriate, the macro
       PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP can be used  to  initialize  mu‐
       texes  that  are  statically allocated. The effect is equivalent to dy‐
       namic initialization by a call to pthread_mutex_init()  with  parameter
       attr  initialized  and with type set to PTHREAD_MUTEX_RECURSIVE, except
       that no error checks are performed.


       In cases where error check mutex attributes are appropriate, the  macro
       PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP  can  be used to initialize mu‐
       texes that are statically allocated. The effect is  equivalent  to  dy‐
       namic  initialization  by a call to pthread_mutex_init() with parameter
       attr initialized and with type set to PTHREAD_MUTEX_ERRORCHECK,  except
       that no error checks are performed.

RETURN VALUES
       If  successful,  the  pthread_mutex_init()  and pthread_mutex_destroy()
       functions return 0. Otherwise, an error number is returned to  indicate
       the error.

ERRORS
       The pthread_mutex_init() function will fail if:

       EAGAIN    The system lacked the necessary resources (other than memory)
                 to initialize another mutex.


       EBUSY     An  attempt was detected to re-initialize a robust mutex pre‐
                 viously initialized but not yet destroyed. See pthread_mutex‐
                 attr_setrobust(3C).


       EINVAL    An attempt was detected to re-initialize a robust mutex  pre‐
                 viously  initialized  with a different set of attributes. See
                 pthread_mutexattr_setrobust(3C).


       ENOMEM    Insufficient memory exists to initialize the mutex.


       EPERM     The caller does not have the privilege to perform the  opera‐
                 tion.



       The pthread_mutex_init() function may fail if:

       EBUSY     An  attempt  was  detected to re-initialize the object refer‐
                 enced by mutex, a mutex previously initialized  but  not  yet
                 destroyed.


       EINVAL    The value specified by attr or mutex is invalid.



       The pthread_mutex_destroy() function may fail if:

       EBUSY     An  attempt  was detected to destroy the object referenced by
                 mutex while it is locked or referenced  (for  example,  while
                 being  used in a pthread_cond_wait(3C) or pthread_cond_timed‐
                 wait(3C)) by another thread.


       EINVAL    The value specified by mutex is invalid.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE  VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe _ Stan‐
       dardSee standards(7).


SEE ALSO
       pthread_mutexattr_setprotocol(3C),  pthread_cond_wait(3C),  pthread_mu‐
       tex_lock(3C),    pthread_mutexattr_setprioceiling(3C),   pthread_mutex‐
       attr_setpshared(3C),  pthread_mutexattr_setrobust(3C),   pthread_mutex‐
       attr_settype(3C), attributes(7), mutex(7), standards(7)

Oracle Solaris 11.4               16 May 2014           pthread_mutex_init(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3