Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Jul 2001 10:59:02 -0500
From:      Alfred Perlstein <bright@sneakerz.org>
To:        Julian Elischer <julian@elischer.org>
Cc:        Jason Evans <jasone@canonware.com>, arch@freebsd.org
Subject:   Re: help needed in threads.. (Signals)
Message-ID:  <20010709105902.E1894@sneakerz.org>
In-Reply-To: <3B49794F.5123170F@elischer.org>; from julian@elischer.org on Mon, Jul 09, 2001 at 02:28:47AM -0700
References:  <3B494657.D3B7BF48@elischer.org> <20010708232131.O8775@canonware.com> <3B49794F.5123170F@elischer.org>

next in thread | previous in thread | raw e-mail | index | archive | help
* Julian Elischer <julian@elischer.org> [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




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