From owner-freebsd-threads@FreeBSD.ORG Thu May 29 13:29:25 2003 Return-Path: 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 5B61C37B401 for ; Thu, 29 May 2003 13:29:25 -0700 (PDT) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mx1.FreeBSD.org (Postfix) with ESMTP id AB62D43F93 for ; Thu, 29 May 2003 13:29:24 -0700 (PDT) (envelope-from eischen@pcnet.com) Received: from mail.pcnet.com (mail.pcnet.com [204.213.232.4]) by mail.pcnet.com (8.12.8/8.12.1) with ESMTP id h4TKTNNc025695; Thu, 29 May 2003 16:29:23 -0400 (EDT) Date: Thu, 29 May 2003 16:29:23 -0400 (EDT) From: Daniel Eischen To: Alexander Kabaev In-Reply-To: <20030529194855.GA58411@kan.dnsalias.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: Martin Blapp cc: freebsd-threads@freebsd.org Subject: Re: lock with openoffice build with libkse X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 May 2003 20:29:25 -0000 On Thu, 29 May 2003, Alexander Kabaev wrote: > Daniel, > > attached program is enough to trigger the loop. It looks like > the setjump/longjmp from signal handler trick only forks for > the first time. You can try this patch. It puts the cart before the horse though, so signals could get delivered in a different order. Martin, is there some magic to building open-office. My ports tree is pristine and I recently rebuilt X, KDE, and mozilla using portupgrade. This was without any previous /usr/local or /usr/X11R6 (I mean clean!). portinstall just returns and does nothing: $ sudo portinstall -NR editors/openoffice $ -- Dan Eischen Index: thread/thr_sig.c =================================================================== RCS file: /home/ncvs/src/lib/libpthread/thread/thr_sig.c,v retrieving revision 1.51 diff -u -r1.51 thr_sig.c --- thread/thr_sig.c 24 May 2003 02:29:25 -0000 1.51 +++ thread/thr_sig.c 29 May 2003 20:19:28 -0000 @@ -185,6 +185,7 @@ ucp->uc_sigmask = _thr_proc_sigmask; if (((__sighandler_t *)sigfunc != SIG_DFL) && ((__sighandler_t *)sigfunc != SIG_IGN)) { + __sys_sigprocmask(SIG_SETMASK, &_thr_proc_sigmask, NULL); if (((_thread_sigact[sig - 1].sa_flags & SA_SIGINFO) != 0) || (info == NULL)) (*(sigfunc))(sig, info, ucp);