Date: Thu, 16 Aug 2007 22:33:07 -0400 (EDT) From: Daniel Eischen <deischen@freebsd.org> To: David Xu <davidxu@freebsd.org> Cc: cvs-src@freebsd.org, src-committers@freebsd.org, Xin LI <delphij@delphij.net>, cvs-all@freebsd.org, tijl@ulyssis.org Subject: Re: cvs commit: src/sys/kern kern_thr.c syscalls.master src/sys/sys thr.h Message-ID: <Pine.GSO.4.64.0708162216530.1396@sea.ntplx.net> In-Reply-To: <46C4FD02.3090708@freebsd.org> References: <200708160526.l7G5Qg0b008022@repoman.freebsd.org> <Pine.GSO.4.64.0708161019000.610@sea.ntplx.net> <46C472EF.9070204@delphij.net> <Pine.GSO.4.64.0708161336370.1396@sea.ntplx.net> <46C4FD02.3090708@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 17 Aug 2007, David Xu wrote: > Daniel Eischen wrote: >> >> I realize what it's for, and I don't agree that it belongs in the >> tree. There are other forms of interprocess communication, pipes, >> sockets, even msg queues. I'm sure you can find a few ways to send >> a message to a process to say "send signal X to thread Y" if you >> really wanted to. It looks like even Linux makes you use a thread >> group, not a thread. >> >> I don't see where this was discussed on -arch or -current, but >> maybe I missed that thread. >> >> -- >> DE >> > > I've CCe'd Tijl Coosemans to check if there is another way to implement > the feature in WINE instead of in kernel. in fact, I have delayed the > the change for a few days, I was thinking you know the patch, but the > fact is not now. PS, the feature is not required by libthr. ;-) Yes, I know it's not needed by libthr :-) I would think you could use mq_open(), mq_notify() with sigev_notify = SIGEV_SIGNAL, etc. When the receiving process gets the signal, it reads the message queue to get the target thread id and the signal to send to it. It would be nice if we (FreeBSD) did have thread groups, and the ability to (soft) bind them to specific CPUs or CPU sets, ala Solaris processor_bind(), pset_bind(), etc. Once you have these, then I can perhaps see a thrgrp_signal() or something similar since the thread group would already be managable outside the context of a process. -- DE
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.64.0708162216530.1396>