Clarification: Acquiring a mutex when a read/write lock is held

Dheeraj Kandula dheerajktech at gmail.com
Tue Apr 21 13:23:28 UTC 2015


Thanks for the response. I want to acquire the read/write lock first either
as reader or writer and then acquire the mutex lock.
I think the second part of your response deals with ordering of locks to
prevent deadlock. That shouldn't be an issue. Thanks again for the quick
reply.

On Tue, Apr 21, 2015 at 5:09 PM, Mateusz Guzik <mjguzik at gmail.com> wrote:

> On Tue, Apr 21, 2015 at 04:33:24PM +0530, Dheeraj Kandula wrote:
> > Hey All,
> >        Can you clarify the following
> >
> > I have a read write lock locked. Next I want to acquire a mutex when the
> > read write lock is held. Is this allowed or not. As far as I can
> understand
> > from the "FreeBSD Kernel Developers Handbook" this operation is allowed
> in
> > FreeBSD9.0, 10.0 and further.
> >
> > But the read write lock cannot be held while sleeping. Doesn't this
> > contradict the above statement, as a thread will go to sleep if can't
> > acquire the mutex when another thread holds the mutex.
> >
> > Hence what sleep are we referring here. Is this sleep(unbounded sleep) or
> > the bounded sleep.
> >
>
> Both lock types allow bound sleep, so there is nothing preventing you
> from establishing the order either way.
>
> Of course then there is the quesiton whether these particular locks you
> have in mind can be taken in the order you want to take them.
>
> --
> Mateusz Guzik <mjguzik gmail.com>
>


More information about the freebsd-hackers mailing list