Date: Wed, 19 Sep 2001 18:26:24 -0700 From: Julian Elischer <julian@elischer.org> To: Nate Williams <nate@yogotech.com> Cc: John Baldwin <jhb@FreeBSD.ORG>, julian@FreeBSD.ORG, arch@FreeBSD.ORG Subject: Re: sigsuspend() and KSE Message-ID: <3BA945C0.E4738800@elischer.org> References: <XFMail.010919161625.jhb@FreeBSD.org> <15273.11874.366229.387658@nomad.yogotech.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Nate Williams wrote: > > > /* > > * Suspend process until signal, providing mask to be set > > * in the meantime. Note nonstandard calling convention: > > * libc stub passes mask, not pointer, to save a copyin. > > ***** XXXKSE this doesn't make sense under KSE. > > ***** Do we suspend the thread or all threads in the process? > > ***** How do we suspend threads running NOW on another processor? > > */ > > > > Here's my opinion: > > > > sigsuspend() just suspends the current thread. When a signal is posted, it > > wakes up all threads blocked on sigsuspend whose mask matches that signal. I > > can see it still making sense, but perhaps being of limited usefulness in a > > threaded program. > > What has limited usefulness? Being able to suspend all threads, or > waking up all threads? John: In the big picture, you want a SIGSUSPEND to suspend all the threads on all the processors for that process. The behaviour of a program to ^Z is well defined and people will expect that it just stops.. (not just part of it) > > Nate -- +------------------------------------+ ______ _ __ | __--_|\ 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?3BA945C0.E4738800>