On Tue, Jan 29, 2008 at 01:35:01PM -0800, Dan Price wrote: > Finally, it seems to me that this might be more easily fixed by masking > the offending signal in all threads except for the dedicated > signal catcher-- in which case the signal will be forced to go to > that thread and only that thread; this could be done with some signal > manipulation in startd_thread_create().
Simpler still: have the signal handler port_send() a user-defined event that causes wait_thread() to exit().