From owner-freebsd-threads@FreeBSD.ORG Thu Jun 8 21:30:06 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 93E3516CE63 for ; Thu, 8 Jun 2006 17:43:51 +0000 (UTC) (envelope-from maxim@macomnet.ru) Received: from mp2.macomnet.net (mp2.macomnet.net [195.128.64.6]) by mx1.FreeBSD.org (Postfix) with ESMTP id F066043D45 for ; Thu, 8 Jun 2006 17:43:50 +0000 (GMT) (envelope-from maxim@macomnet.ru) Received: from localhost (localhost [127.0.0.1]) by mp2.macomnet.net (8.13.4/8.13.3) with ESMTP id k58HhgjO018437; Thu, 8 Jun 2006 21:43:42 +0400 (MSD) (envelope-from maxim@macomnet.ru) Date: Thu, 8 Jun 2006 21:43:42 +0400 (MSD) From: Maxim Konovalov To: Mikhail Teterin In-Reply-To: <200606081218.17131.mi+mx@aldan.algebra.com> Message-ID: <20060608213618.O17062@mp2.macomnet.net> References: <200606071906.25776.mi+mx@aldan.algebra.com> <200606071916.38538.mi+mx@aldan.algebra.com> <20060608081626.X6097@mp2.macomnet.net> <200606081218.17131.mi+mx@aldan.algebra.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=koi8-r Content-Transfer-Encoding: 8BIT Cc: threads@freebsd.org Subject: Re: SIGINFO and pthreads X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jun 2006 21:30:06 -0000 On Thu, 8 Jun 2006, 12:18-0400, Mikhail Teterin wrote: > ÞÅÔ×ÅÒ 08 ÞÅÒ×ÅÎØ 2006 00:17, Maxim Konovalov ÎÁÐÉÓÁ×: > > Inline it if it's small. šMailman strips most attachments. > > Damn... Yes, it is small -- this is just a demo program. Compile it first as > > cc -o t t.c > > Then -- run and try various keyboard signals like Ctrl-C, Ctrl-Z, > Ctrl-T (SIGINFO), or Ctrl-\. (It will not quit on its own, you'll > have to kill it from another prompt.) > > They will all work. Then -- recompile as > > cc -o t -pthread t.c > > And run... This time around it will ignore the Ctrl-T, while > continuing to respond to others. > > > libpthread uses SIGINFO for dumping thread information to a file but > > looking over the code it seems it does allow to use SIGINFO to the > > app. > > I'd like to be able to disable the debugging feature or, at least, > force it to call my signal-handler AS EXPECTED AND DOCUMENTED, after > it is done with its own dumping. A funny thing your test program does work if you run it as LIBPTHREAD_DEBUG=yes ./t Try this patch: Index: thread/thr_sigaction.c =================================================================== RCS file: /home/ncvs/src/lib/libpthread/thread/thr_sigaction.c,v retrieving revision 1.23 diff -u -p -r1.23 thr_sigaction.c --- thread/thr_sigaction.c 13 Mar 2006 00:59:51 -0000 1.23 +++ thread/thr_sigaction.c 8 Jun 2006 17:30:31 -0000 @@ -75,7 +75,7 @@ _sigaction(int sig, const struct sigacti * Check if the kernel needs to be advised of a change * in signal action: */ - if (act != NULL && sig != SIGINFO) { + if (act != NULL /* && sig != SIGINFO */) { newact.sa_flags |= SA_SIGINFO; %%% For the first glance and quick test this check is not needed as we dump threads in already installed for SIGINFO _thr_sig_handler(). Of course we need our libpthreads experts review. -- Maxim Konovalov