PTHREAD(3)              NetBSD Library Functions Manual             PTHREAD(3)

NAME
     pthread -- POSIX Threads Library

LIBRARY
     POSIX Threads Library (libpthread, -lpthread)

SYNOPSIS
     #include <pthread.h>

     cc [flags] files -lpthread [libraries]

DESCRIPTION
     The pthread library provides an implementation of the standard POSIX
     threads library.

     The NetBSD implementation is based on 1:1 thread model, therefore each
     pthread has a kernel thread, called a light-weight process (LWP).

     Note that the system private thread interfaces upon which the pthread
     library is built are subject to change without notice.  In order to
     remain compatible with future NetBSD releases, programs must be linked
     against the dynamic version of the thread library.  Statically linked
     programs using the POSIX threads framework may not work when run on a
     future version of the system.

FUNCTIONS
     The following functions comprise the core of the pthread library:

           Function                      Description
           pthread_attr(3)               thread attribute operations
           pthread_barrier_destroy(3)    destroy a barrier
           pthread_barrier_init(3)       create a barrier
           pthread_barrier_wait(3)       wait for a barrier
           pthread_barrierattr(3)        barrier attribute operations
           pthread_cancel(3)             cancel the execution of a thread
           pthread_cleanup_push(3)       add or remove cleanup functions
           pthread_cond_broadcast(3)     unblock one or more threads
           pthread_cond_destroy(3)       destroy a condition variable
           pthread_cond_init(3)          create a condition variable
           pthread_cond_wait(3)          wait for a condition variable
           pthread_condattr(3)           condition attribute operations
           pthread_create(3)             create a new thread
           pthread_detach(3)             detach a thread
           pthread_equal(3)              compare thread identifiers
           pthread_exit(3)               terminate the calling thread
           pthread_getspecific(3)        get a thread-specific data value
           pthread_join(3)               wait for thread termination
           pthread_key_create(3)         thread-specific data key creation
           pthread_key_delete(3)         delete a thread-specific data key
           pthread_kill(3)               send a signal to a specific thread
           pthread_mutex_destroy(3)      free a mutex
           pthread_mutex_init(3)         create a mutex
           pthread_mutex_lock(3)         acquire a lock on a mutex
           pthread_mutex_unlock(3)       unlock a mutex
           pthread_mutexattr(3)          mutex attribute operations
           pthread_once(3)               dynamic package initialization
           pthread_rwlock_destroy(3)     destroy a read/write lock
           pthread_rwlock_init(3)        initialize a read/write lock
           pthread_rwlock_rdlock(3)      acquire a read/write lock for reading
           pthread_rwlock_unlock(3)      release a read/write lock
           pthread_rwlock_wrlock(3)      acquire a read/write lock for writing
           pthread_rwlockattr(3)         read/write lock attribute operations
           pthread_schedparam(3)         thread scheduling manipulation
           pthread_self(3)               get the ID of the calling thread
           pthread_setspecific(3)        get a thread-specific data value
           pthread_sigmask(3)            manipulate a thread's signal mask
           pthread_spin_destroy(3)       destroy a spin lock
           pthread_spin_init(3)          initialize a spin lock
           pthread_spin_lock(3)          acquire a spin lock
           pthread_spin_unlock(3)        release a spin lock
           pthread_testcancel(3)         set cancelability state

ENVIRONMENT
     The following environment variables affect the behavior of the library:

     PTHREAD_DIAGASSERT
          Possible values are any combinations of:

           A   Report errors to application by error return, but do not abort.
           a   Abort on errors, creating a core dump for further debugging.
           E   Do not log errors to stdout.
           e   Log errors to stdout.
           L   Do not log errors via syslogd(8).
           l   Log errors via syslogd(8).

          If not set in the environment, the pthread library behaves as if AEL
          has been specified.

     PTHREAD_STACKSIZE
          Integer value giving the stack size in kilobytes.  This allows to
          set a smaller stack size than the default stack size.  The default
          stack size is the current limit on the stack size as set with the
          shell's command to change limits (limit for csh(1), or ulimit for
          sh(1)).

SEE ALSO
     David R. Butenhof, Programming with POSIX(R) Threads, Addison-Wesley,
     1997.

STANDARDS
     The pthread library conforms to IEEE Std 1003.1-2001 (``POSIX.1'').

CAVEATS
     Due to limitations in the current pthread implementation, makecontext(3)
     and sigaltstack(2) should not be used in programs which link against the
     pthread library (whether threads are used or not).

NetBSD 6.0                       May 16, 2010                       NetBSD 6.0