From owner-cvs-all Tue Nov 14 20: 3:33 2000 Delivered-To: cvs-all@freebsd.org Received: from khavrinen.lcs.mit.edu (khavrinen.lcs.mit.edu [18.24.4.193]) by hub.freebsd.org (Postfix) with ESMTP id 9480D37B4C5; Tue, 14 Nov 2000 20:03:30 -0800 (PST) Received: (from wollman@localhost) by khavrinen.lcs.mit.edu (8.9.3/8.9.3) id XAA67532; Tue, 14 Nov 2000 23:03:20 -0500 (EST) (envelope-from wollman) Date: Tue, 14 Nov 2000 23:03:20 -0500 (EST) From: Garrett Wollman Message-Id: <200011150403.XAA67532@khavrinen.lcs.mit.edu> To: Mike Smith Cc: John Baldwin , cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/sys eventhandler.h In-Reply-To: <200011150325.eAF3PRF01212@mass.osd.bsdi.com> References: <200011141823.KAA89218@freefall.freebsd.org> <200011150325.eAF3PRF01212@mass.osd.bsdi.com> Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG < said: > If you want to release the lock on the list, you would have to detect > when the list is changed and rescan it to find the 'new' current > location. Only that doesn't work either, since the list traversal allows > you to remove the current handler from the list. Not necessarily. You can do it by maintaining two queues, and deferring deletion (using a flag bit in the queue element). I'm fairly certain it's possible to do a completely non-blocking traversal of such a queue. -GAWollman To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message