VMS Help
POSIX Threads, PTHREAD routines, pthread_rwlock_unlock
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
Unlocks a read-write lock object.
#include <pthread.h>
int
pthread_rwlock_unlock (
pthread_rwlock_t *rwlock);
rwlock
Address of the read-write lock object to be unlocked.
This routine releases a lock acquisition held on the read-write
lock object referenced by rwlock. Results are undefined if rwlock
is not held by the calling thread.
If this routine is called to release a lock for read access on
rwlock and the calling thread also currently holds other locks
for read access on rwlock, the read-write lock object remains
in the read locked state. If this routine releases the calling
thread's last lock for read access on rwlock, the calling thread
is no longer one of the owners of the lock object.
If this routine is called to release a lock for write access
on rwlock, the lock object is put in the unlocked state with no
owners.
If a call to this routine results in the read-write lock object
becoming unlocked and there are multiple threads waiting to
acquire that lock for write access, the Threads Library uses
the scheduling policy of those waiting threads to determine
which thread next acquires the lock object for write access. If
there are multiple threads waiting to acquire the read-write lock
object for read access, the Threads Library uses the scheduling
policy of those waiting threads to determine the order in which
those threads acquire the lock for read access. If there are
multiple threads waiting to acquire the read-write lock object
for both read and write access, it is unspecified whether a
thread waiting for read access or for write access next acquires
the lock object.
If the read-write lock object referenced by rwlock is not
initialized, the results of calling this routine are undefined.
If an error condition occurs, this routine returns an integer
value indicating the type of error. Possible return values are as
follows:
Return Description
0 Successful completion.
[EINVAL] The values specified by rwlock does not refer to an
initialized read-write lock object.
[EPERM] The calling thread does not hold the read-write lock
object.
pthread_rwlockattr_init()
pthread_rwlock_init()
pthread_rwlock_rdlock()
pthread_rwlock_wrlock()
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.