Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Mar 2014 03:34:50 +0400
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>
Subject:   Re: svn commit: r262806 - head/sys/net
Message-ID:  <20140305233450.GG68791@FreeBSD.org>
In-Reply-To: <CAJ-Vmomz1ikt9=2pDFsnR0uu2HhJ%2BUj%2BrcW7O-fxve_qT05Umw@mail.gmail.com>
References:  <201403052116.s25LGkEq007924@svn.freebsd.org> <CAJ-Vmomz1ikt9=2pDFsnR0uu2HhJ%2BUj%2BrcW7O-fxve_qT05Umw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Mar 05, 2014 at 03:29:55PM -0800, Adrian Chadd wrote:
A> ... why's the code returning locked mutexes to UMA?
A> 
A> Why not fix the places that are doing this and doing a lock assertion
A> in the destructor? What's this buy us?
A> 
A> I'm very wary of design patterns like this that do conditional
A> unlocking in free/destructor routines; it allows for the caller to not
A> necessarily get all the lock/unlock stuff to line up in the main code
A> and it can make debugging more of a pain.

I get your point, and even share it. I discussed that with melifaro@,
he prefers destructors being smart. Note that mutex(9) by design allows
to destroy a locked mutex. And route(4) relied on this semantics. Now
I converted route(4) to lazy mutex deallocation. Of course, if mutex(9)
didn't allow such trick, I wouldn't implement the code I did. But since
code of route(4) was not considered broken before, I decided to keep
status quo.


-- 
Totus tuus, Glebius.



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