PERFORCE change 126330 for review

Attilio Rao attilio at freebsd.org
Wed Sep 12 15:30:29 PDT 2007


2007/9/12, Kip Macy <kip.macy at gmail.com>:
> On 9/12/07, Pawel Jakub Dawidek <pjd at freebsd.org> wrote:
> > On Wed, Sep 12, 2007 at 08:32:21AM +0000, Kip Macy wrote:
> > > http://perforce.freebsd.org/chv.cgi?CH=126330
> > >
> > > Change 126330 by kmacy at kmacy_home:ethng on 2007/09/12 08:31:36
> > >
> > >       convert radix node head and route locks from mutexes to rwlocks
> > [...]
> > >               rt->rt_flags |= RTF_LLINFO;
> > > -             callout_init_mtx(&la->la_timer, &rt->rt_mtx,
> > > -                 CALLOUT_RETURNUNLOCKED);
> > > +             callout_init_rwlock(&la->la_timer, &rt->rt_lock,
> > > +                 CALLOUT_RETURNUNLOCKED_RW);
> > >
> >
> > Kip, don't add callout_init_rwlock() to the tree. I've
> > callout_init_lock() implemented that operates on any lock type, just
> > like condvar(9).
>
> point me to a diff

I'm courious to know another thing instead.
As like condvar() works, it is allowed to before release and later
acquire the lock.
This scheme let you acquire the lock again following the previous
pattern for sx and rw locks (if for example you had a rwlock mantained
in write mode you will acquire it in the same way).
This is not applicable to callout, instead, as you have the lock
'blank', so with double-kind locks (like rw and sx) how do you lock
it?

Thanks,
Attilio


-- 
Peace can only be achieved by understanding - A. Einstein


More information about the p4-projects mailing list