blob: 07263b3dedde488196037e7140fcaa367cc49f5c [file] [log] [blame]
<assertions>
<assertion id="1" tag="ref:XSH6:34765:34767">
pthread_rwlock_rdlock( ) function shall apply a read lock to the
read-write lock referenced by rwlock. The calling thread acquires
the read lock if a writer does not hold the lock and there are
no writers blocked on the lock.
</assertion>
<assertion id="2" tag="ref:XSH6:34768:34771">
If the Thread Execution Scheduling option is supported,
and the threads involved in the lock are executing with the
scheduling policies SCHED_FIFO or SCHED_RR, the calling thread shall not
acquire the lock if a writer holds the lock or if writers of
higher or equal priority are blocked on the lock;
otherwise, the calling thread shall acquire the lock.
</assertion>
<assertion id="3" tag="ref:XSH6:34772:34775">
If the Threads Execution Scheduling option is supported, and the threads
involved in the lock are executing with the SCHED_SPORADIC scheduling policy,
the calling thread shall not acquire the lock if a writer holds the lock or
if writers of higher or equal priority are blocked on
the lock; otherwise, the calling thread shall acquire the lock.
</assertion>
<assertion id="4" tag="ref:XSH6:34792:34794">
If a signal is delivered to a thread waiting for a read-write lock for reading,
upon return from the signal handler the thread resumes waiting for the read-write
lock for reading as if it was not interrupted.
</assertion>
<assertion id="5" tag="ref:XSH6:34781:34783">
A thread may hold multiple concurrent read locks on 'rwlock' and the application shall
ensure that the thread will perform matching unlocks for each read lock.
</assertion>
<assertion id="6" tag="ref:XSH6:34796:34797">
If successful, the pthread_rwlock_rdlock( ) function shall return zero;
otherwise, an error number shall be returned to indicate the error.
These functions shall not return an error code of [EINTR].
</assertion>
</assertions>