From owner-freebsd-arch Mon Jul 9 8:59: 8 2001 Delivered-To: freebsd-arch@freebsd.org Received: from sneakerz.org (sneakerz.org [216.33.66.254]) by hub.freebsd.org (Postfix) with ESMTP id 68F7F37B401 for ; Mon, 9 Jul 2001 08:59:03 -0700 (PDT) (envelope-from bright@sneakerz.org) Received: by sneakerz.org (Postfix, from userid 1092) id C612D5D020; Mon, 9 Jul 2001 10:59:02 -0500 (CDT) Date: Mon, 9 Jul 2001 10:59:02 -0500 From: Alfred Perlstein To: Julian Elischer Cc: Jason Evans , arch@freebsd.org Subject: Re: help needed in threads.. (Signals) Message-ID: <20010709105902.E1894@sneakerz.org> References: <3B494657.D3B7BF48@elischer.org> <20010708232131.O8775@canonware.com> <3B49794F.5123170F@elischer.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2i In-Reply-To: <3B49794F.5123170F@elischer.org>; from julian@elischer.org on Mon, Jul 09, 2001 at 02:28:47AM -0700 Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG * Julian Elischer [010709 04:51] wrote: > > here's where I'm having problems... > I can pass the signal to the UTS, but I don't know what to do about the > threads that are doing 'uninterruptable sleeps' in the kernel. > Should the UTS give me back a list of threads to kick? > that would satisfy the posix semantics. > > I guess I should ignore all signals when in KSE mode and just pass them up > as an upcall. > (The kernel interface and the user interface need not be the same). > > This indicates that a signal pre-empts whatever is running to do an upcall > rather than > waiting until i gets a chance that may never happen. > (hmmmmm I need to think about this more... off to bed..) I'm quite sure this is basically what Sun had to do to get signals working properly under thier implementation, the only problem is that you need a way to send a signal to a blocked instance of a thread to interrupt its sleep. Probably any externally generated signals should be delivered to the UTS, and the UTS can request that blocked doohickeys(*) be interrupted and have thier tsleep() return EINTR. (*) whatever the blockable contexts are called. -- -Alfred Perlstein [alfred@freebsd.org] Ok, who wrote this damn function called '??'? And why do my programs keep crashing in it? To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message