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>