unsigned ctl_rwlock_read_lock(CTL_RWLOCK_t *rwlock,
                              CTL_TIMEOUT_t t,
                              CTL_TIME_t timeout);

this attempts to acquire a read lock on the read-write lock rwlock. ctl_rwlock_read_lock will block waiting for exclusive access to rwlock to end and for an available read lock.

If a timeout is specified and a read lock cannot be acquired before the timeout, ctl_rwlock_read_lock returns zero. If a read lock can be acquired, ctl_rwlock_read_lock returns a non-zero result.


ctl_rwlock_read_lock must not be called from an interrupt service routine.