From owner-freebsd-threads@FreeBSD.ORG Mon Aug 7 17:15:23 2006 Return-Path: X-Original-To: threads@freebsd.org Delivered-To: freebsd-threads@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B129F16A4DF; Mon, 7 Aug 2006 17:15:23 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.ntplx.net (mail.ntplx.net [204.213.176.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3E4B343D45; Mon, 7 Aug 2006 17:15:23 +0000 (GMT) (envelope-from deischen@freebsd.org) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.ntplx.net (8.13.7/8.13.7/NETPLEX) with ESMTP id k77HFMFD020878; Mon, 7 Aug 2006 13:15:22 -0400 (EDT) Date: Mon, 7 Aug 2006 13:15:21 -0400 (EDT) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Robert Watson In-Reply-To: <20060807151829.T45647@fledge.watson.org> Message-ID: References: <20060807151829.T45647@fledge.watson.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.ntplx.net) Cc: threads@freebsd.org Subject: Re: GHC 6.4.3 on FreeBSD (fwd) X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Aug 2006 17:15:23 -0000 On Mon, 7 Aug 2006, Robert Watson wrote: > > I've been talking to the Haskell folk about problems they've had getting > their threaded runtime running on FreeBSD. Here's one of their problem > reports. Since I'm not up on how threads and signals are supposed to act, I > can't confirm the below is a bug, of course, but figured you (experts) would > be able to respond better. Try this patch. -- DE Index: thread/thr_sig.c =================================================================== RCS file: /opt/FreeBSD/cvs/src/lib/libpthread/thread/thr_sig.c,v retrieving revision 1.85 diff -u -r1.85 thr_sig.c --- thread/thr_sig.c 9 Jun 2006 14:23:40 -0000 1.85 +++ thread/thr_sig.c 7 Aug 2006 16:37:50 -0000 @@ -1095,6 +1095,11 @@ struct pthread *curthread = _get_curthread(); struct kse_mailbox *kmbx; + if ((curthread->kse->k_flags & KF_STARTED) == 0) { + (void)__sys_kill(getpid(), sig); + return; + } + if (pthread->attr.flags & PTHREAD_SCOPE_SYSTEM) { kse_thr_interrupt(&pthread->tcb->tcb_tmbx, KSE_INTR_SENDSIG, sig); return;