SIGINFO and pthreads
Maxim Konovalov
maxim at macomnet.ru
Thu Jun 8 21:30:06 UTC 2006
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
More information about the freebsd-threads
mailing list