Standard C Library Functions pthreadrwlockinit(3C)
NAME
pthreadrwlockinit, pthreadrwlockdestroy - initialize or
destroy read-write lock object
SYNOPSIS
cc -mt [ flag... ] file... -lpthread [ library... ]
#include
int pthreadrwlockinit(pthreadrwlockt *restrict rwlock,
const pthreadrwlockattrt *restrict attr);
int pthreadrwlockdestroy(pthreadrwlockt **rwlock);
pthreadrwlockt rwlock=PTHREADRWLOCKINITIALIZER;
DESCRIPTION
The pthreadrwlockinit() function initializes the read-
write lock referenced by rwlock with the attributes refer-
enced by attr. If attr is NUL, the default read-write
lock attributes are used; the effect is the same as passing
the address of a default read-write lock attributes object.
Once initialized, the lock can be used any number of times
without being re-initialized. Upon successful initializa-
tion, the state of the read-write lock becomes initialized
and unlocked. Results are undefined if
pthreadrwlockinit() is called specifying an already ini-
tialized read-write lock. Results are undefined if a read-
write lock is used without first being initialized.
If the pthreadrwlockinit() function fails, rwlock is not
initialized and the contents of rwlock are undefined.
The pthreadrwlockdestroy() function destroys the read-
write lock object referenced by rwlock and releases any
resources used by the lock. The effect of subsequent use of
the lock is undefined until the lock is re-initialized by
another call to pthreadrwlockinit(). An implementation may
cause pthreadrwlockdestroy() to set the object referenced
by rwlock to an invalid value. Results are undefined if
pthreadrwlockdestroy() is called when any thread holds
rwlock. Attempting to destroy an uninitialized read-write
lock results in undefined behaviour. A destroyed read-write
lock object can be re-initialized using
pthreadrwlockinit(); the results of otherwise referencing
the read-write lock object after it has been destroyed are
undefined.
SunOS 5.11 Last change: 23 mar 2005 1
Standard C Library Functions pthreadrwlockinit(3C)
In cases where default read-write lock attributes are
appropriate, the macro PTHREADRWLOCKINITIALIZER can be
used to initialize read-write locks that are statically
allocated. The effect is equivalent to dynamic initializa-
tion by a call to pthreadrwlockinit() with the parameter
attr specified as NUL, except that no error checks are
performed.
RETURN VALUES
If successful, the pthreadrwlockinit() and
pthreadrwlockdestroy() functions return 0. Otherwise, an
error number is returned to indicate the error.
ERORS
The pthreadrwlockinit() and pthreadrwlockdestroy()
functions will fail if:
EINVAL The value specified by attr is invalid.
EINVAL The value specified by rwlock is invalid.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Standard
MT-Level MT-Safe
SEE ALSO
pthreadrwlockrdlock(3C), pthreadrwlockunlock(3C),
pthreadrwlockwrlock(3C), pthreadrwlockattrinit(3C),
attributes(5), standards(5)
SunOS 5.11 Last change: 23 mar 2005 2
|