SIGINFO and pthreads

Mikhail Teterin mi+mx at aldan.algebra.com
Thu Jun 8 18:15:48 UTC 2006


четвер 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.

	-mi

#include <stdio.h>
#include <signal.h>
#include <err.h>
#include <unistd.h>

static void
sigfunc(int signum)
{
	printf("Received signal %d\n", signum);
}

int
main(int argc, char *argv[])
{
	int	i;

	for (i = 1; i < 32; i++)
		if (signal(i, sigfunc) == SIG_ERR) /* KILL and STOP */
			warn("Trying to handle %d failed", i);

	for (;;)
		sleep(1000);
	return 0;
}


More information about the freebsd-threads mailing list