<!DOCTYPE html PUBLIC "‐//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">     <html
xmlns="http://www.w3.org/1999/xhtml"> <head>
    <link            rel="stylesheet"             type="text/css"
href="../../../style.css" title="style" />
    <link  rel="stylesheet"  type="text/css"  href="../style.css"
title="style" />
    <meta             http‐equiv="content‐type"              con‐
tent="text/html;charset=utf‐8" />

    <title>pthread.h.0p ‐ Linux manual page</title> </head>

<body>

<div        class="page‐top"><a       id="top_of_page"></a></div>
<!‐‐%%%TOP_BAR%%%‐‐> <!‐‐%%%PAGE_START%%%‐‐>

<table class="sec‐table"> <tr>
    <td>
        <p class="section‐dir"> <a href="#PROLOG">PROLOG</a> | <a
href="#NAME">NAME</a>  |  <a  href="#SYNOPSIS">SYNOPSIS</a>  | <a
href="#DESCRIPTION">DESCRIPTION</a> |  <a  href="#APPLICATION_US‐
AGE">APPLICATION&nbsp;USAGE</a>   |  <a  href="#RATIONALE">RATIO‐
NALE</a>   |   <a    href="#FUTURE_DIRECTIONS">FUTURE&nbsp;DIREC‐
TIONS</a>    |   <a   href="#SEE_ALSO">SEE&nbsp;ALSO</a>   |   <a
href="#COPYRIGHT">COPYRIGHT</a>
        </p>
    </td>
    <td class="search‐box">
        <div class="man‐search‐box">

            <form                method="get"                 ac‐
tion="http://www.google.com/search">
                <fieldset class="man‐search">
                    <input    type="text"    name="q"   size="10"
maxlength="255" value="" />
                    <input type="hidden"  name="sitesearch"  val‐
ue="man7.org/linux/man‐pages" />
                    <input  type="submit" name="sa" value="Search
online pages" />
                </fieldset>
            </form>

        </div>
    </td>
    <td> </td> </tr> </table>

<pre> <span class="headline">pthread.h(0P)             POSIX Pro‐
grammer’s  Manual             pthread.h(0P)</span>  </pre> <h2><a
id="PROLOG" href="#PROLOG"></a>PROLOG  &nbsp; &nbsp; &nbsp;  &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       This manual page is part of the POSIX Programmer’s Manual.
The Linux
       implementation of this interface may differ (consult the
       corresponding  Linux  manual page for details of Linux be‐
havior), or
       the interface may not be  implemented  on  Linux.   </pre>
<h2><a id="NAME" href="#NAME"></a>NAME  &nbsp; &nbsp; &nbsp; &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       pthread.h    —   threads   </pre>   <h2><a   id="SYNOPSIS"
href="#SYNOPSIS"></a>SYNOPSIS  &nbsp;  &nbsp;  &nbsp;  &nbsp;  <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       #include &lt;pthread.h&gt; </pre> <h2><a  id="DESCRIPTION"
href="#DESCRIPTION"></a>DESCRIPTION   &nbsp; &nbsp; &nbsp; &nbsp;
<a             href="#top_of_page"><span              class="top‐
link">top</span></a></h2><pre>
       The  <i>&lt;pthread.h&gt;</i> header shall define the fol‐
lowing symbolic constants:

       PTHREAD_BARRIER_SERIAL_THREAD
       PTHREAD_CANCEL_ASYNCHRONOUS
       PTHREAD_CANCEL_ENABLE
       PTHREAD_CANCEL_DEFERRED
       PTHREAD_CANCEL_DISABLE
       PTHREAD_CANCELED
       PTHREAD_CREATE_DETACHED
       PTHREAD_CREATE_JOINABLE
       PTHREAD_EXPLICIT_SCHED
       PTHREAD_INHERIT_SCHED
       PTHREAD_MUTEX_DEFAULT
       PTHREAD_MUTEX_ERRORCHECK
       PTHREAD_MUTEX_NORMAL
       PTHREAD_MUTEX_RECURSIVE
       PTHREAD_MUTEX_ROBUST
       PTHREAD_MUTEX_STALLED
       PTHREAD_ONCE_INIT
       PTHREAD_PRIO_INHERIT
       PTHREAD_PRIO_NONE
       PTHREAD_PRIO_PROTECT
       PTHREAD_PROCESS_SHARED
       PTHREAD_PROCESS_PRIVATE
       PTHREAD_SCOPE_PROCESS
       PTHREAD_SCOPE_SYSTEM

       The <i>&lt;pthread.h&gt;</i> header shall define the  fol‐
lowing compile‐time
       constant expressions valid as initializers for the follow‐
ing types:

                ┌───────────────────────────┬──────────────────────┐
                │            <b>Name            </b>│ <b>Initial‐
izer for Type </b>│
                ├───────────────────────────┼──────────────────────┤
                │PTHREAD_COND_INITIALIZER    │  <b>pthread_cond_t
</b>│
                │PTHREAD_MUTEX_INITIALIZER  │  <b>pthread_mutex_t
</b>│
                │PTHREAD_RWLOCK_INITIALIZER │ <b>pthread_rwlock_t
</b>│
                └───────────────────────────┴──────────────────────┘
       The   <i>&lt;pthread.h&gt;</i>  header  shall  define  the
<b>pthread_attr_t</b>,
       <b>pthread_barrier_t</b>,    <b>pthread_barrierattr_t</b>,
<b>pthread_cond_t</b>,
       <b>pthread_condattr_t</b>,           <b>pthread_key_t</b>,
<b>pthread_mutex_t</b>,
       <b>pthread_mutexattr_t</b>,         <b>pthread_once_t</b>,
<b>pthread_rwlock_t</b>,
       <b>pthread_rwlockattr_t</b>,    <b>pthread_spinlock_t</b>,
and <b>pthread_t </b>types as
       described in <i>&lt;sys/types.h&gt;</i>.

       The following shall be declared as functions and may  also
be defined
       as macros. Function prototypes shall be provided.

           <b>int       pthread_atfork(void    (*)(void),    void
(*)(void),</b>
                     <b>void(*)(void));</b>
           <b>int   pthread_attr_destroy(pthread_attr_t *);</b>
           <b>int   pthread_attr_getdetachstate(const pthread_at‐
tr_t *, int *);</b>
           <b>int    pthread_attr_getguardsize(const  pthread_at‐
tr_t *restrict,</b>
                     <b>size_t *restrict);</b>
           <b>int              pthread_attr_getinheritsched(const
pthread_attr_t *restrict,</b>
                     <b>int *restrict);</b>
           <b>int    pthread_attr_getschedparam(const pthread_at‐
tr_t *restrict,</b>
                     <b>struct sched_param *restrict);</b>
           <b>int   pthread_attr_getschedpolicy(const pthread_at‐
tr_t *restrict,</b>
                     <b>int *restrict);</b>
           <b>int     pthread_attr_getscope(const  pthread_attr_t
*restrict,</b>
                     <b>int *restrict);</b>
           <b>int    pthread_attr_getstack(const   pthread_attr_t
*restrict,</b>
                     <b>void **restrict, size_t *restrict);</b>
           <b>int    pthread_attr_getstacksize(const  pthread_at‐
tr_t *restrict,</b>
                     <b>size_t *restrict);</b>
           <b>int   pthread_attr_init(pthread_attr_t *);</b>
           <b>int   pthread_attr_setdetachstate(pthread_attr_t *,
int);</b>
           <b>int    pthread_attr_setguardsize(pthread_attr_t  *,
size_t);</b>
           <b>int     pthread_attr_setinheritsched(pthread_attr_t
*, int);</b>
           <b>int       pthread_attr_setschedparam(pthread_attr_t
*restrict,</b>
                     <b>const struct sched_param *restrict);</b>
           <b>int   pthread_attr_setschedpolicy(pthread_attr_t *,
int);</b>
           <b>int      pthread_attr_setscope(pthread_attr_t    *,
int);</b>
           <b>int   pthread_attr_setstack(pthread_attr_t *,  void
*, size_t);</b>
           <b>int    pthread_attr_setstacksize(pthread_attr_t  *,
size_t);</b>
           <b>int       pthread_barrier_destroy(pthread_barrier_t
*);</b>
           <b>int    pthread_barrier_init(pthread_barrier_t  *re‐
strict,</b>
                     <b>const  pthread_barrierattr_t   *restrict,
unsigned);</b>
           <b>int          pthread_barrier_wait(pthread_barrier_t
*);</b>
           <b>int    pthread_barrierattr_destroy(pthread_barrier‐
attr_t *);</b>
           <b>int   pthread_barrierattr_getpshared(</b>
                     <b>const   pthread_barrierattr_t  *restrict,
int *restrict);</b>
           <b>int     pthread_barrierattr_init(pthread_barrierat‐
tr_t *);</b>
           <b>int   pthread_barrierattr_setpshared(pthread_barri‐
erattr_t *, int);</b>
           <b>int   pthread_cancel(pthread_t);</b>
           <b>void  pthread_cleanup_pop(int);</b>
           <b>void   pthread_cleanup_push(void  (*)(void*),  void
*);</b>
           <b>int   pthread_cond_broadcast(pthread_cond_t *);</b>
           <b>int   pthread_cond_destroy(pthread_cond_t *);</b>
           <b>int       pthread_cond_init(pthread_cond_t     *re‐
strict,</b>
                     <b>const pthread_condattr_t *restrict);</b>
           <b>int   pthread_cond_signal(pthread_cond_t *);</b>
           <b>int    pthread_cond_timedwait(pthread_cond_t   *re‐
strict,</b>
                     <b>pthread_mutex_t  *restrict,  const struct
timespec *restrict);</b>
           <b>int       pthread_cond_wait(pthread_cond_t     *re‐
strict,</b>
                     <b>pthread_mutex_t *restrict);</b>
           <b>int     pthread_condattr_destroy(pthread_condattr_t
*);</b>
           <b>int   pthread_condattr_getclock(const  pthread_con‐
dattr_t *restrict,</b>
                     <b>clockid_t *restrict);</b>
           <b>int               pthread_condattr_getpshared(const
pthread_condattr_t *restrict,</b>
                     <b>int *restrict);</b>
           <b>int        pthread_condattr_init(pthread_condattr_t
*);</b>
           <b>int    pthread_condattr_setclock(pthread_condattr_t
*, clockid_t);</b>
           <b>int     pthread_condattr_setpshared(pthread_condat‐
tr_t *, int);</b>
           <b>int     pthread_create(pthread_t  *restrict,  const
pthread_attr_t *restrict,</b>
                     <b>void *(*)(void*), void *restrict);</b>
           <b>int   pthread_detach(pthread_t);</b>
           <b>int   pthread_equal(pthread_t, pthread_t);</b>
           <b>void  pthread_exit(void *);</b>
           <b>int   pthread_getconcurrency(void);</b>
           <b>int    pthread_getcpuclockid(pthread_t,   clockid_t
*);</b>
           <b>int     pthread_getschedparam(pthread_t,  int  *re‐
strict,</b>
                     <b>struct sched_param *restrict);</b>
           <b>void *pthread_getspecific(pthread_key_t);</b>
           <b>int   pthread_join(pthread_t, void **);</b>
           <b>int    pthread_key_create(pthread_key_t   *,   void
(*)(void*));</b>
           <b>int   pthread_key_delete(pthread_key_t);</b>
           <b>int        pthread_mutex_consistent(pthread_mutex_t
*);</b>
           <b>int   pthread_mutex_destroy(pthread_mutex_t *);</b>
           <b>int              pthread_mutex_getprioceiling(const
pthread_mutex_t *restrict,</b>
                     <b>int *restrict);</b>
           <b>int      pthread_mutex_init(pthread_mutex_t    *re‐
strict,</b>
                     <b>const pthread_mutexattr_t *restrict);</b>
           <b>int   pthread_mutex_lock(pthread_mutex_t *);</b>
           <b>int    pthread_mutex_setprioceiling(pthread_mutex_t
*restrict, int,</b>
                     <b>int *restrict);</b>
           <b>int    pthread_mutex_timedlock(pthread_mutex_t *re‐
strict,</b>
                     <b>const struct timespec *restrict);</b>
           <b>int   pthread_mutex_trylock(pthread_mutex_t *);</b>
           <b>int   pthread_mutex_unlock(pthread_mutex_t *);</b>
           <b>int   pthread_mutexattr_destroy(pthread_mutexattr_t
*);</b>
           <b>int   pthread_mutexattr_getprioceiling(</b>
                     <b>const  pthread_mutexattr_t *restrict, int
*restrict);</b>
           <b>int             pthread_mutexattr_getprotocol(const
pthread_mutexattr_t *restrict,</b>
                     <b>int *restrict);</b>
           <b>int              pthread_mutexattr_getpshared(const
pthread_mutexattr_t *restrict,</b>
                     <b>int *restrict);</b>
           <b>int   pthread_mutexattr_getrobust(const pthread_mu‐
texattr_t *restrict,</b>
                     <b>int *restrict);</b>
           <b>int    pthread_mutexattr_gettype(const  pthread_mu‐
texattr_t *restrict,</b>
                     <b>int *restrict);</b>
           <b>int      pthread_mutexattr_init(pthread_mutexattr_t
*);</b>
           <b>int    pthread_mutexattr_setprioceiling(pthread_mu‐
texattr_t *, int);</b>
           <b>int    pthread_mutexattr_setprotocol(pthread_mutex‐
attr_t *, int);</b>
           <b>int   pthread_mutexattr_setpshared(pthread_mutexat‐
tr_t *, int);</b>
           <b>int    pthread_mutexattr_setrobust(pthread_mutexat‐
tr_t *, int);</b>
           <b>int   pthread_mutexattr_settype(pthread_mutexattr_t
*, int);</b>
           <b>int      pthread_once(pthread_once_t    *,     void
(*)(void));</b>
           <b>int         pthread_rwlock_destroy(pthread_rwlock_t
*);</b>
           <b>int     pthread_rwlock_init(pthread_rwlock_t   *re‐
strict,</b>
                     <b>const      pthread_rwlockattr_t      *re‐
strict);</b>
           <b>int          pthread_rwlock_rdlock(pthread_rwlock_t
*);</b>
           <b>int     pthread_rwlock_timedrdlock(pthread_rwlock_t
*restrict,</b>
                     <b>const struct timespec *restrict);</b>
           <b>int     pthread_rwlock_timedwrlock(pthread_rwlock_t
*restrict,</b>
                     <b>const struct timespec *restrict);</b>
           <b>int       pthread_rwlock_tryrdlock(pthread_rwlock_t
*);</b>
           <b>int       pthread_rwlock_trywrlock(pthread_rwlock_t
*);</b>
           <b>int          pthread_rwlock_unlock(pthread_rwlock_t
*);</b>
           <b>int          pthread_rwlock_wrlock(pthread_rwlock_t
*);</b>
           <b>int    pthread_rwlockattr_destroy(pthread_rwlockat‐
tr_t *);</b>
           <b>int   pthread_rwlockattr_getpshared(</b>
                     <b>const pthread_rwlockattr_t *restrict, int
*restrict);</b>
           <b>int    pthread_rwlockattr_init(pthread_rwlockattr_t
*);</b>
           <b>int   pthread_rwlockattr_setpshared(pthread_rwlock‐
attr_t *, int);</b>
           <b>pthread_t</b>
                 <b>pthread_self(void);</b>
           <b>int   pthread_setcancelstate(int, int *);</b>
           <b>int   pthread_setcanceltype(int, int *);</b>
           <b>int   pthread_setconcurrency(int);</b>
           <b>int   pthread_setschedparam(pthread_t, int,</b>
                     <b>const struct sched_param *);</b>
           <b>int   pthread_setschedprio(pthread_t, int);</b>
           <b>int   pthread_setspecific(pthread_key_t, const void
*);</b>
           <b>int         pthread_spin_destroy(pthread_spinlock_t
*);</b>
           <b>int      pthread_spin_init(pthread_spinlock_t    *,
int);</b>
           <b>int   pthread_spin_lock(pthread_spinlock_t *);</b>
           <b>int         pthread_spin_trylock(pthread_spinlock_t
*);</b>
           <b>int          pthread_spin_unlock(pthread_spinlock_t
*);</b>
           <b>void  pthread_testcancel(void);</b>

       Inclusion of  the  <i>&lt;pthread.h&gt;</i>  header  shall
make symbols defined in the
       headers  <i>&lt;sched.h&gt;</i>  and <i>&lt;time.h&gt;</i>
visible.

       <i>The  following  sections  are  informative.</i>  </pre>
<h2><a  id="APPLICATION_USAGE"  href="#APPLICATION_USAGE"></a>AP‐
PLICATION    USAGE     &nbsp;    &nbsp;    &nbsp;    &nbsp;    <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       None.    </pre>   <h2><a   id="RATIONALE"    href="#RATIO‐
NALE"></a>RATIONALE     &nbsp;    &nbsp;    &nbsp;    &nbsp;   <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       None.   </pre>  <h2><a  id="FUTURE_DIRECTIONS"  href="#FU‐
TURE_DIRECTIONS"></a>FUTURE DIRECTIONS  &nbsp; &nbsp; &nbsp; &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       None.    </pre>   <h2><a   id="SEE_ALSO"    href="#SEE_AL‐
SO"></a>SEE    ALSO     &nbsp;    &nbsp;    &nbsp;    &nbsp;   <a
href="#top_of_page"><span                             class="top‐
link">top</span></a></h2><pre>
       <a    href="../man0/sched.h.0p.html">sched.h(0p)</a>,   <a
href="../man0/sys_types.h.0p.html">sys_types.h(0p)</a>,        <a
href="../man0/time.h.0p.html">time.h(0p)</a>

       The   System   Interfaces   volume   of  POSIX.1‐2008,  <a
href="../man3/pthread_atfork.3p.html">pthread_atfork(3p)</a>,
       <a href="../man3/pthread_attr_destroy.3p.html">pthread_at‐
tr_destroy(3p)</a>,    <a   href="../man3/pthread_attr_getdetach‐
state.3p.html">pthread_attr_getdetachstate(3p)</a>,
       <a                    href="../man3/pthread_attr_getguard‐
size.3p.html">pthread_attr_getguardsize(3p)</a>,               <a
href="../man3/pthread_attr_getinheritsched.3p.html">pthread_at‐
tr_getinheritsched(3p)</a>,
       <a                    href="../man3/pthread_attr_getsched‐
param.3p.html">pthread_attr_getschedparam(3p)</a>,             <a
href="../man3/pthread_attr_getschedpolicy.3p.html">pthread_at‐
tr_getschedpolicy(3p)</a>,
       <a                               href="../man3/pthread_at‐
tr_getscope.3p.html">pthread_attr_getscope(3p)</a>,            <a
href="../man3/pthread_attr_getstack.3p.html">pthread_attr_get‐
stack(3p)</a>,
       <a                    href="../man3/pthread_attr_getstack‐
size.3p.html">pthread_attr_getstacksize(3p)</a>,               <a
href="../man3/pthread_barrier_destroy.3p.html">pthread_barri‐
er_destroy(3p)</a>,
       <a                            href="../man3/pthread_barri‐
er_wait.3p.html">pthread_barrier_wait(3p)</a>,                 <a
href="../man3/pthread_barrierattr_destroy.3p.html">pthread_barri‐
erattr_destroy(3p)</a>,
       <a                 href="../man3/pthread_barrierattr_getp‐
shared.3p.html">pthread_barrierattr_getpshared(3p)</a>,        <a
href="../man3/pthread_cancel.3p.html">pthread_cancel(3p)</a>,
       <a
href="../man3/pthread_cleanup_pop.3p.html">pthread_cleanup_pop(3p)</a>,
<a                              href="../man3/pthread_cond_broad‐
cast.3p.html">pthread_cond_broadcast(3p)</a>,
       <a                          href="../man3/pthread_cond_de‐
stroy.3p.html">pthread_cond_destroy(3p)</a>,                   <a
href="../man3/pthread_cond_timedwait.3p.html">pthread_cond_timed‐
wait(3p)</a>,
       <a                      href="../man3/pthread_condattr_de‐
stroy.3p.html">pthread_condattr_destroy(3p)</a>,               <a
href="../man3/pthread_condattr_getclock.3p.html">pthread_condat‐
tr_getclock(3p)</a>,
       <a                    href="../man3/pthread_condattr_getp‐
shared.3p.html">pthread_condattr_getpshared(3p)</a>,           <a
href="../man3/pthread_create.3p.html">pthread_create(3p)</a>,
       <a       href="../man3/pthread_detach.3p.html">pthread_de‐
tach(3p)</a>,                                                  <a
href="../man3/pthread_equal.3p.html">pthread_equal(3p)</a>,    <a
href="../man3/pthread_exit.3p.html">pthread_exit(3p)</a>,
       <a                     href="../man3/pthread_getconcurren‐
cy.3p.html">pthread_getconcurrency(3p)</a>,                    <a
href="../man3/pthread_getcpuclockid.3p.html">pthread_getcpuclock‐
id(3p)</a>,
       <a                         href="../man3/pthread_getsched‐
param.3p.html">pthread_getschedparam(3p)</a>,                  <a
href="../man3/pthread_getspecific.3p.html">pthread_getspecif‐
ic(3p)</a>,                                                    <a
href="../man3/pthread_join.3p.html">pthread_join(3p)</a>,
       <a                          href="../man3/pthread_key_cre‐
ate.3p.html">pthread_key_create(3p)</a>,                       <a
href="../man3/pthread_key_delete.3p.html">pthread_key_delete(3p)</a>,
       <a                     href="../man3/pthread_mutex_consis‐
tent.3p.html">pthread_mutex_consistent(3p)</a>,                <a
href="../man3/pthread_mutex_destroy.3p.html">pthread_mutex_de‐
stroy(3p)</a>,
       <a                href="../man3/pthread_mutex_getprioceil‐
ing.3p.html">pthread_mutex_getprioceiling(3p)</a>,             <a
href="../man3/pthread_mutex_lock.3p.html">pthread_mu‐
tex_lock(3p)</a>,
       <a                      href="../man3/pthread_mutex_timed‐
lock.3p.html">pthread_mutex_timedlock(3p)</a>,                 <a
href="../man3/pthread_mutexattr_destroy.3p.html">pthread_mutexat‐
tr_destroy(3p)</a>,
       <a            href="../man3/pthread_mutexattr_getprioceil‐
ing.3p.html">pthread_mutexattr_getprioceiling(3p)</a>,
       <a               href="../man3/pthread_mutexattr_getproto‐
col.3p.html">pthread_mutexattr_getprotocol(3p)</a>,            <a
href="../man3/pthread_mutexattr_getpshared.3p.html">pthread_mu‐
texattr_getpshared(3p)</a>,
       <a                  href="../man3/pthread_mutexattr_getro‐
bust.3p.html">pthread_mutexattr_getrobust(3p)</a>,             <a
href="../man3/pthread_mutexattr_gettype.3p.html">pthread_mutexat‐
tr_gettype(3p)</a>,
       <a
href="../man3/pthread_once.3p.html">pthread_once(3p)</a>,      <a
href="../man3/pthread_rwlock_destroy.3p.html">pthread_rwlock_de‐
stroy(3p)</a>,
       <a                        href="../man3/pthread_rwlock_rd‐
lock.3p.html">pthread_rwlock_rdlock(3p)</a>,                   <a
href="../man3/pthread_rwlock_timedrd‐
lock.3p.html">pthread_rwlock_timedrdlock(3p)</a>,
       <a                   href="../man3/pthread_rwlock_timedwr‐
lock.3p.html">pthread_rwlock_timedwrlock(3p)</a>,              <a
href="../man3/pthread_rwlock_trywr‐
lock.3p.html">pthread_rwlock_trywrlock(3p)</a>,
       <a                        href="../man3/pthread_rwlock_un‐
lock.3p.html">pthread_rwlock_unlock(3p)</a>,                   <a
href="../man3/pthread_rwlockattr_destroy.3p.html">pthread_rwlock‐
attr_destroy(3p)</a>,
       <a                  href="../man3/pthread_rwlockattr_getp‐
shared.3p.html">pthread_rwlockattr_getpshared(3p)</a>,         <a
href="../man3/pthread_self.3p.html">pthread_self(3p)</a>,
       <a                        href="../man3/pthread_setcancel‐
state.3p.html">pthread_setcancelstate(3p)</a>,                 <a
href="../man3/pthread_setschedprio.3p.html">pthread_setsched‐
prio(3p)</a>,
       <a                          href="../man3/pthread_spin_de‐
stroy.3p.html">pthread_spin_destroy(3p)</a>,                   <a
href="../man3/pthread_spin_lock.3p.html">pthread_spin_lock(3p)</a>,
       <a                          href="../man3/pthread_spin_un‐
lock.3p.html">pthread_spin_unlock(3p)</a> </pre> <h2><a id="COPY‐
RIGHT" href="#COPYRIGHT"></a>COPYRIGHT  &nbsp; &nbsp; &nbsp; &nb‐
sp;        <a        href="#top_of_page"><span        class="top‐
link">top</span></a></h2><pre>
       Portions  of  this  text  are  reprinted and reproduced in
electronic form
       from IEEE Std 1003.1, 2013 Edition, Standard for  Informa‐
tion
       Technology ‐‐ Portable Operating System Interface (POSIX),
The Open
       Group Base Specifications Issue 7, Copyright (C)  2013  by
the
       Institute of Electrical and Electronics Engineers, Inc and
The Open
       Group.  (This is POSIX.1‐2008 with the 2013 Technical Cor‐
rigendum 1
       applied.)  In  the  event  of any discrepancy between this
version and
       the original IEEE and The Open Group Standard, the  origi‐
nal IEEE and
       The Open Group Standard is the referee document. The orig‐
inal
       Standard    can    be    obtained     online     at     <a
href="http://www.unix.org/online.html">http://www.unix.org/on‐
line.html</a> .

       Any typographical or formatting errors that appear in this
page are
       most  likely to have been introduced during the conversion
of the
       source files to man page format. To  report  such  errors,
see
       <a      href="https://www.kernel.org/doc/man‐pages/report‐
ing_bugs.html">https://www.kernel.org/doc/man‐pages/report‐
ing_bugs.html</a> .

<span  class="footline">IEEE/The  Open Group                 2013
pthread.h(0P)</span> </pre>

<hr class="end‐man‐text" />

<hr class="start‐footer" />

<div class="footer">

<table class="colophon‐table">
    <tr>
    <td class="pub‐info">
        <p>
            HTML rendering created 2019‐08‐02
            by  <a  href="http://man7.org/mtk/index.html">Michael
Kerrisk</a>,
            author of
            <a  href="http://man7.org/tlpi/"><em>The  Linux  Pro‐
gramming Interface</em></a>,
            maintainer of the
            <a href="https://www.kernel.org/doc/man‐pages/">Linux
<em>man‐pages</em> project</a>.
        </p>
        <p>
            For details of in‐depth
            <strong>Linux/UNIX  system programming training cour‐
ses</strong>
            that I teach,  look  <a  href="http://man7.org/train‐
ing/">here</a>.
        </p>
        <p>
            Hosting    by    <a   href="http://www.jambit.com/in‐
dex_en.html">jambit GmbH</a>.
        </p>
        <p>
            <a href="http://validator.w3.org/check?uri=referer">
            <img src="http://www.w3.org/Icons/valid‐xhtml11"
                alt="Valid XHTML 1.1" height="31" width="88" />
            </a>
        </p>
    </td>
    <td class="colophon‐divider">
    </td>
    <td class="tlpi‐cover">
        <a                      href="http://man7.org/tlpi/"><img
src="http://man7.org/tlpi/cover/TLPI‐front‐cover‐vsmall.png"
alt="Cover of TLPI" /></a>
    </td>
    </tr> </table>

</div>

<hr class="end‐footer" />

</body> </html>