From owner-cvs-all@FreeBSD.ORG Fri Aug 17 02:33:19 2007 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F6E616A41A; Fri, 17 Aug 2007 02:33:19 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id 0D49013C461; Fri, 17 Aug 2007 02:33:18 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.1/8.14.1/NETPLEX) with ESMTP id l7H2X7EA016108; Thu, 16 Aug 2007 22:33:07 -0400 (EDT) X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-3.0 (mail.netplex.net [204.213.176.10]); Thu, 16 Aug 2007 22:33:07 -0400 (EDT) Date: Thu, 16 Aug 2007 22:33:07 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: David Xu In-Reply-To: <46C4FD02.3090708@freebsd.org> Message-ID: References: <200708160526.l7G5Qg0b008022@repoman.freebsd.org> <46C472EF.9070204@delphij.net> <46C4FD02.3090708@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@freebsd.org, src-committers@freebsd.org, Xin LI , cvs-all@freebsd.org, tijl@ulyssis.org Subject: Re: cvs commit: src/sys/kern kern_thr.c syscalls.master src/sys/sys thr.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Aug 2007 02:33:19 -0000 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