From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22717 invoked by alias); 13 Mar 2002 18:38:31 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 22614 invoked from network); 13 Mar 2002 18:38:29 -0000 Received: from unknown (HELO houston.candd.org) (216.112.178.26) by sources.redhat.com with SMTP; 13 Mar 2002 18:38:29 -0000 Received: from houston.candd.org (localhost [127.0.0.1]) by houston.candd.org (8.9.3/8.9.3) with ESMTP id NAA11263; Wed, 13 Mar 2002 13:38:20 -0500 (EST) Message-Id: <200203131838.NAA11263@houston.candd.org> To: Daniel Jacobowitz Cc: Kevin Buettner , gdb-patches@sources.redhat.com Subject: Re: [PATCH RFA/RFC] Don't use lwp_from_thread() in thread_db_wait() In-Reply-To: Your message of "Wed, 13 Mar 2002 12:46:32 EST." <20020313124632.A14198@nevyn.them.org> Date: Wed, 13 Mar 2002 10:38:00 -0000 From: David Taylor X-SW-Source: 2002-03/txt/msg00200.txt.bz2 > Date: Wed, 13 Mar 2002 12:46:32 -0500 > From: Daniel Jacobowitz > > On Wed, Mar 13, 2002 at 12:37:08PM -0500, David Taylor wrote: > > > Date: Tue, 12 Mar 2002 11:23:31 -0500 > > > From: Daniel Jacobowitz > > > > > Yes, that could probably be arranged. Someday we should talk to a > > > vendor of an M:N threads package and see what we have to work with. I > > > don't know of any offhand besides NGPT. > > > > If I understand you correctly, then: Solaris. > > Is it really? > > To clarify, LinuxThreads has one thread per process; IBM's NGPT has > multiple threads per process, but still multiple processes. I was > under the impression that Solaris LWPs would have all threads in one > process. > > (except of course the terminology gets fuzzy here. One "process" in > Solaris includes multiple LWPs which can be executing at the same time. > If my understanding above is correct it might be more appropriate to > call Solaris one-thread-per-LWP). Perhaps I misunderstood. Or perhaps it's just a terminology issue. Solaris >= 2.5.1 has a two level threads implementation -- . threads, sometimes called user threads . light weight processes, sometimes called kernel threads They are all part of one process. You can have M user threads mapped onto N LWPs. There are two sorts of signals in Solaris -- synchronous (some LWP executing some thread caused the signal -- e.g., SIGILL, SIGSEGV) and asynchronous (e.g., SIGINT, SIGQUIT, SIGSTOP, SIGKILL). Synchronous signals are delivered to the thread/lwp that caused the signal; asynchronous signals are delivered to the asychronous signal LWP (ASLWP), arbitrary thread.