diff options
Diffstat (limited to 'man3p/pthread_spin_init.3p')
-rw-r--r-- | man3p/pthread_spin_init.3p | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/man3p/pthread_spin_init.3p b/man3p/pthread_spin_init.3p new file mode 100644 index 000000000..bc976071f --- /dev/null +++ b/man3p/pthread_spin_init.3p @@ -0,0 +1,120 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "PTHREAD_SPIN_DESTROY" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" pthread_spin_destroy +.SH NAME +pthread_spin_destroy, pthread_spin_init \- destroy or initialize a +spin lock object (\fBADVANCED REALTIME +THREADS\fP) +.SH SYNOPSIS +.LP +\fB#include <pthread.h> +.br +.sp +int pthread_spin_destroy(pthread_spinlock_t *\fP\fIlock\fP\fB); +.br +int pthread_spin_init(pthread_spinlock_t *\fP\fIlock\fP\fB, int\fP +\fIpshared\fP\fB); \fP +\fB +.br +\fP +.SH DESCRIPTION +.LP +The \fIpthread_spin_destroy\fP() function shall destroy the spin lock +referenced by \fIlock\fP and release any resources used +by the lock. The effect of subsequent use of the lock is undefined +until the lock is reinitialized by another call to +\fIpthread_spin_init\fP(). The results are undefined if \fIpthread_spin_destroy\fP() +is called when a thread holds the lock, or +if this function is called with an uninitialized thread spin lock. +.LP +The \fIpthread_spin_init\fP() function shall allocate any resources +required to use the spin lock referenced by \fIlock\fP and +initialize the lock to an unlocked state. +.LP +If the Thread Process-Shared Synchronization option is supported and +the value of \fIpshared\fP is PTHREAD_PROCESS_SHARED, the +implementation shall permit the spin lock to be operated upon by any +thread that has access to the memory where the spin lock is +allocated, even if it is allocated in memory that is shared by multiple +processes. +.LP +If the Thread Process-Shared Synchronization option is supported and +the value of \fIpshared\fP is PTHREAD_PROCESS_PRIVATE, +or if the option is not supported, the spin lock shall only be +operated upon by threads created within the same process as the thread +that initialized the spin lock. If threads of differing +processes attempt to operate on such a spin lock, the behavior is +undefined. +.LP +The results are undefined if \fIpthread_spin_init\fP() is called specifying +an already initialized spin lock. The results are +undefined if a spin lock is used without first being initialized. +.LP +If the \fIpthread_spin_init\fP() function fails, the lock is not initialized +and the contents of \fIlock\fP are undefined. +.LP +Only the object referenced by \fIlock\fP may be used for performing +synchronization. +.LP +The result of referring to copies of that object in calls to \fIpthread_spin_destroy\fP(), +\fIpthread_spin_lock\fP(), \fIpthread_spin_trylock\fP(), or \fIpthread_spin_unlock\fP() +is undefined. +.SH RETURN VALUE +.LP +Upon successful completion, these functions shall return zero; otherwise, +an error number shall be returned to indicate the +error. +.SH ERRORS +.LP +These functions may fail if: +.TP 7 +.B EBUSY +The implementation has detected an attempt to initialize or destroy +a spin lock while it is in use (for example, while being +used in a \fIpthread_spin_lock\fP() call) by another thread. +.TP 7 +.B EINVAL +The value specified by \fIlock\fP is invalid. +.sp +.LP +The \fIpthread_spin_init\fP() function shall fail if: +.TP 7 +.B EAGAIN +The system lacks the necessary resources to initialize another spin +lock. +.TP 7 +.B ENOMEM +Insufficient memory exists to initialize the lock. +.sp +.LP +These functions shall not return an error code of [EINTR]. +.LP +\fIThe following sections are informative.\fP +.SH EXAMPLES +.LP +None. +.SH APPLICATION USAGE +.LP +The \fIpthread_spin_destroy\fP() and \fIpthread_spin_init\fP() functions +are part of the Spin Locks option and need not be +provided on all implementations. +.SH RATIONALE +.LP +None. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIpthread_spin_lock\fP() , \fIpthread_spin_unlock\fP() , the Base +Definitions volume of IEEE\ Std\ 1003.1-2001, \fI<pthread.h>\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |