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>