Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 18 Aug 2002 20:25:19 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Julian Elischer <julian@elischer.org>
Cc:        Matthew Dillon <dillon@apollo.backplane.com>, Ian Dowse <iedowse@maths.tcd.ie>, Bruce Evans <bde@zeta.org.au>, arch@FreeBSD.ORG
Subject:   Re: Solving the stack gap issue
Message-ID:  <3D60651F.63E1A626@mindspring.com>
References:  <Pine.BSF.4.21.0208181959240.42036-100000@InterJet.elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Julian Elischer wrote:
> On Sun, 18 Aug 2002, Terry Lambert wrote:
> > Julian Elischer wrote:
> > > On Sun, 18 Aug 2002, Matthew Dillon wrote:
> > [ ... ]
> [...]
> >
> > If "lock b" fails because it would result in a deadlock, then
> > the only safe way to recover is to unwind the call graph to the
> > point "lock a" was acquired, and release "lock a", yield, and
> > then reacquire "lock a" and redescend the call graph to retry
> > the "lock b" acquisition.
> 
> you are talking (almost) about the "asleep()" faciliy that matt Dillon
> added for a while bus has been rmoved again..

Almost.  I think the code could be refactored to get the behaviour
(e.g. by doing the locking for multiple objects in the same function
that derives the data), without needing an "asleep".

Anyway, you have to admit, it's much more of a problem than argument
passing vs. global references for "curthread".  8-).

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3D60651F.63E1A626>