tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: NetBSD vs Solaris condvar semantics
On Sun, Oct 14, 2012 at 07:20:02AM +0000, Taylor R Campbell wrote:
> I'm working on fixing ZFS locking, and I ran into a diference between
> NetBSD's and Solaris's interpretation of condvars.
>
> In Solaris, it seems to be kosher to do
>
> cv_broadcast(cv);
> cv_destroy(cv);
>
> at least if waiters use only cv_wait and not cv_wait_sig &c. That
> idiom makes NetBSD very unhappy, though, because cv_wait wants to
> continue using cv after it is woken, at which point cv may already be
> destroyed.
>
> ZFS makes nontrivial use of this idiom, such as in dirent locks and
> range locks.
It is wrong. If possible we should fix ZFS. If not, the next best
approach is to provide a separate cv implementation for ZFS that
allows callers to do skanky things without producing nasal demons.
--
David A. Holland
dholland%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index