The presented behaviour of pthread_rwlock_rdlock() is POSIX compliant. The http://opengroup.org/onlinepubs/007908799/xsh/pthread_rwlock_rdlock.html says explicitely:The calling thread acquires the read lock if a writer does not hold the lock and there are no writers blocked on the lock.
It is unspecified whether the calling thread acquires the lock when a writer does not hold the lock and there are writers waiting for the lock. Petr