Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Aug 2001 23:30:01 -0700
From:      Julian Elischer <julian@elischer.org>
To:        Garrett Wollman <wollman@khavrinen.lcs.mit.edu>
Cc:        bsd-api-discuss@wasabisystems.com
Subject:   Re: changes to BSD APIs for THREADS support
Message-ID:  <3B889769.E1529443@elischer.org>
References:  <mit.lcs.mail.freebsd-arch/3B885ED0.9DFCA5B5@elischer.org> <200108260548.f7Q5mtE03868@khavrinen.lcs.mit.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Garrett Wollman wrote:
> 
> In article <mit.lcs.mail.freebsd-arch/20010826052748$3c50@traf.lcs.mit.edu> you write:
> 
> >Multithreaded process signal delivery.  There's an intricate way that this
> >is handled in Solaris, as "async signals".  More prior art that's probably
> >worth imitating for code compatibility's sake.
> 
> I think that POSIX fully (or at least elaborately) specifies this, and
> note that POSIX does specify a mechanism whereby event notification
> can instantiate a new thread; see the description of SIGEV_THREAD in
> the Realtime Signals Extension.

The GENERAL Posix scheme is that thread delivery type is defined ber process and 
thread delivery masking is per thread. They don't say what happens exactly
if more than one thread doesn't mask a signal, but they do say that only one of
them gets it.
In the scheme we are proposing, signals are a per-process thing from the 
point of view of the kernel, and delivered to the Userland thread scheduler
via a standard upcall. It can then decide which actual thread to deliver it to.
If that thread is in the kernel, it can decide to abort that syscall using 
the proposed 5th syscall.

> 
> One issue, though, is whether programming to meet only the POSIX
> requirements is sufficient, or whether other, alternative threading
> models should be supported more directly.  I'm agnostic on this issue
> (especially since I'm not doing the work either way).  I'm not clear
> on whether those other models would require anything substantually
> different in the way of kernel support, and in any case that may well
> be a dead end anyway and not worth the time to investigate.

We can program to meet a superset of posix, if we can decide what the 
superset is.. :-)

> 
> -GAWollman


-- 
+------------------------------------+       ______ _  __
|   __--_|\  Julian Elischer         |       \     U \/ / hard at work in 
|  /       \ julian@elischer.org     +------>x   USA    \ a very strange
| (   OZ    )                                \___   ___ | country !
+- X_.---._/    presently in San Francisco       \_/   \\
          v

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?3B889769.E1529443>