HELPLIB.HLB  —  POSIX Threads, PTHREAD routines, pthread_rwlock_tryrdlock
    Attempts to acquire a read-write lock object for read access
    without waiting.

1  –  C Binding

    #include <pthread.h>

    int
    pthread_rwlock_tryrdlock (
             pthread_rwlock_t    *rwlock);

2  –  Arguments

 rwlock

    Address of the read-write lock object to acquire for read access.

3  –  Description

    This routine attempts to acquire a read-write lock for read
    access, but does not wait for the lock if it not immediately
    available.

    If no thread already holds the lock for write access and there
    are no writers waiting to acquire the lock, the lock for read
    access is granted to the calling thread and this routine returns.
    If a thread already holds the lock for read access, the lock is
    granted and this routine returns.

    If some thread already holds the lock for write access, the
    calling thread will not acquire the read lock. Results are
    undefined if the calling thread has already acquired a lock for
    write access on rwlock when this routine is called.

    A thread can hold multiple, concurrent locks for read access on
    the same read-write lock. In a given thread, for each call to
    this routine that successfully acquires the same read-write lock
    for read access, a corresponding call to pthread_rwlock_unlock()
    must be issued.

    If the read-write lock object referenced by rwlock is not
    initialized, the results of calling this routine are undefined.

4  –  Return Values

    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; the read-write lock object was
                acquired for read access.
    [EAGAIN]    The lock for read access could not be acquired
                because the maximum number of read lock acquisitions
                for rwlock has been exceeded.
    [EBUSY]     The read-write lock could not be acquired for read
                access because another thread already acquired it
                for write access or is blocked and waiting for it for
                write access.
    [EDEADLCK]  The current thread already owns the read-write lock
                for writing.
    [EINVAL]    The value specified by rwlock does not refer to an
                initialized read-write lock object.

5  –  Associated Routines

       pthread_rwlockattr_init()
       pthread_rwlock_init()
       pthread_rwlock_rdlock()
       pthread_rwlock_unlock()
       pthread_rwlock_wrlock()
Close Help