From owner-freebsd-bugs Sun Nov 26 13: 0: 4 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 79E6737B479 for ; Sun, 26 Nov 2000 13:00:03 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id NAA66146; Sun, 26 Nov 2000 13:00:03 -0800 (PST) (envelope-from gnats@FreeBSD.org) Date: Sun, 26 Nov 2000 13:00:03 -0800 (PST) Message-Id: <200011262100.NAA66146@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: "David Schwartz" Subject: Re: kern/21783: When msgrcv() blocks, it blocks ALL threads in multi-threaded application Reply-To: "David Schwartz" Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/21783; it has been noted by GNATS. From: "David Schwartz" To: , Cc: Subject: Re: kern/21783: When msgrcv() blocks, it blocks ALL threads in multi-threaded application Date: Sun, 26 Nov 2000 12:50:55 -0800 This is extremely unlikely to get fixed in FreeBSD3. For FreeBSD4, the best solution is for programs that need this functionality to compile/link with the LinuxThreads port (ports/devel/linuxthreads). The problem is that FreeBSD's POSIX threads library (libc_r) actually only has a single kernel execution vehicle. So anything that stalls that vehicle stalls all threads. If you need multiple kernel execution vehicles, you should be using a threads library that provides it. David Schwartz To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message