Pavel Raiskup wrote:
> POSIX says (for pthread_rwlock_wrlock()):
> 
>     Implementations may favor writers over readers to avoid writer starvation.
> 
> But that's too far from 'shall favor' spelling.

You must be looking at an old version of POSIX [1]. POSIX:2008 specifies [2]:

[TPS] If ... 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.

That states pretty clearly that the goal is that if both threads have equal
priority, the "writer" thread gets the rwlock.

> It might be bug in libpthread, too, but based on the POSIX specs and manual
> pages, I am not sure whether this might be actually considered a bug.

At least a quality of implementation issue, IMO.

Bruno

[1] 
http://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_rwlock_rdlock.html
[2] 
http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html


Reply via email to