The pthread_rwlock_timedrdlock() potentially returns EAGAIN.
This needs to be handled, translated into F_resource_not (with error bit), and then returned.
const int error = pthread_rwlock_timedrdlock(lock, timeout);
if (error) {
+ if (error == EAGAIN) return F_status_set_error(F_resource_not);
if (error == EDEADLK) return F_status_set_error(F_deadlock);
if (error == EINVAL) return F_status_set_error(F_parameter);
if (error == ETIMEDOUT) return F_time;
*
* F_deadlock (with error bit) if operation would cause a deadlock.
* F_parameter (with error bit) if a parameter is invalid.
+ * F_resource_not (with error bit) if max number of read locks allowed is reached.
*
* F_failure (with error bit) on any other error.
*