I'm having some real trouble with mixing signals and xerces. I've attached a sample program (small) that sets up a signal handler to printout a message when a signal is caught. I get different results depending on whether or not I link with the xerces library or not (!NOTE! this sample code does nothign with xerces other than link to it!)
When I run the test program which simply sets up a handler for all signals between 0 and SIGRTMAX (0 to 64 or so) I then send corresponding kill signals to the program and watch them get caught by the handler and thus printed out. When I send kill -32 <pid> for some reason the handler doesn't get called. Same with single 33, and 34 ... but ALL of the rest of them get printed out. Why am I asking this to a xerces person? well this behavior ONLY happens when I link with the xerces library. MOST ODD! My compile line is as follows: gcc test.c -L/xerces/lib -lxerces-c1_1 I'm using xerces 1_1_0 for linux. Please note this is a sample of the problem, my larger program uses xerces (obviously) but I was just trying to narrow the problem down, and that's how I ended up isolating the xerces lib ... unless I'm missing something here. I'd love to see if someone can duplicate it. Thanks for any help in advance, John Ward [EMAIL PROTECTED] -------------------- #include <stdio.h> #include <signal.h> void SignalHandler(int sig) fprintf(stdout, "Handler, sig = %d\n", sig); } main(int argc, char **argv) { struct sigaction act; int i; sigfillset(&act.sa_mask); act.sa_handler = MyStupidSignalHandler; act.sa_flags = 0; for (i = 0; i < SIGRTMAX; i++) { if (sigaction(i, &act, NULL) == -1) { fprintf(stdout, "can't sigact %d\n", i); } } while (1) { } }