> Date: Tue, 6 Feb 2018 19:06:33 +0900
> From: Ryota Ozaki <ozak...@netbsd.org>
> 
> Is there any reason that rw_lock_held checks if it's held
> by *someone*, not by curlwp? It's confusable and most (or all?)
> users of the API seem to expect the latter (held by curlwp).

Wild guesses:

(a) because it seemed fast to just test (owner & RW_THREAD) != 0, or
(b) because Solaris did it.

> So I think we should do either:
> (1) fix rw_lock_held, or
>     - probably it would be rw_read_held() || rw_write_held()
> (2) fix users of rw_lock_held.
>     - it also would replace rw_lock_held with
>       rw_read_held() || rw_write_held()
> 
> I prefer (1) because I think there is no user of the current
> behavior that is difficult to use for users (it may be useful
> as an internal utility function though).

I like (1) too, but check for Solaris compatibility?  It is hard to
imagine that there are correct uses of the current semantics that are
not also correct uses of (1).

Reply via email to