Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Apr 2015 13:39:14 +0200
From:      Mateusz Guzik <mjguzik@gmail.com>
To:        Dheeraj Kandula <dheerajktech@gmail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Clarification: Acquiring a mutex when a read/write lock is held
Message-ID:  <20150421113914.GA6312@dft-labs.eu>
In-Reply-To: <CAJ5QSa2ECN4c854nsg%2BJdZhXuskgb-pdzYkmop7B_3aSV=Zf7A@mail.gmail.com>
References:  <CAJ5QSa2ECN4c854nsg%2BJdZhXuskgb-pdzYkmop7B_3aSV=Zf7A@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150421113914.GA6312>