On May 18, 2009, at 5:32 PM, Peter Steele wrote:
No, I'm not sending a signal within a signal. The signal handler is
this:
pthread_mutex_lock(&keep_running_mutex);
KEEP_RUNNING = 0;
pthread_cond_signal(&keep_running_cond);
pthread_mutex_unlock(&keep_running_mutex);
This works fine, but at some point it seems to stop working. The app
just continues to run as if it never received the -2 signal. We have
to use a kill -9 to kill it, which we want to avoid because this
prevents our shutdown code from executing.
The pthread_* calls you are making aren't listed as being safe to run
within the context of a signal handler, and could cause a thread
waiting on that condition to be unblocked and start running. Please
see earlier comments about mixing threads and signal handlers.
--
-Chuck
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"