This function acquires a read lock on the read-write lock rwlock. However, if the lock cannot be acquired without waiting for another thread to unlock the lock, this wait shall be terminated when abs_timeout expires.
A thread may hold multiple concurrent read locks. The pthread_rwlock_unlock(3) function must be called once for each lock acquired.
If the thread should be interrupted by a signal, the pthread_rwlock_timedrdlock function will be automatically restarted after the thread returns from the signal handler.
The calling thread may deadlock if at the time the call is made it holds a write lock on rwlock. The results are undefined if this function is called with an uninitialized read-write lock.
To prevent writer starvation, writers are favored over readers.
If successful, the pthread_rwlock_timedrdlock function will return zero. Otherwise, an error number will be returned to indicate the error.
This function shall not return an error code of EINTR.
The pthread_rwlock_timedrdlock function will fail if: