in reply to Re^3: Perl5.8.4 , threads - Killing the "async" kid
in thread Perl5.8.4 , threads - Killing the "async" kid
You wrote:
In a threaded process, if you install a signal handler using the 'normal mechanism' of %SIG, then that signal handler will only be called on the main thread. I assume--but haven't tested--this is the same for sigtrap.
Sorry about the unclear sentence. What I meant was this.
In the code, the signal handler (sigtrap) , is defined at the very top before the thread definitions. This means, like all other functions and variables it duplicated for the threads created subsequently and each thread gets its own signal handler.
In the last 24 hours , I have had at least 3 instances where this appears as-is in the log file:
INT|ABRT|QUIT|TERM received....shutting down service. INT|ABRT|QUIT|TERM received....shutting down service.
2 of those 3 instances was when the main thread was sent a
and 1 was a reboot.kill -15
From this I assumed that each thread gets its own signal handler.
Or is that the signals are chained somehow and when the main thread is sent a TERM, the child gets them too?
Thanks for the tip on synchronising access to file handles. That is something I have not done at all. Maybe that is the reason why on some other boxes, the threads die a premature death after 3 minutes or so as opposed to the planned 24hr reboot cycle.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Perl5.8.4 , threads - Killing the "async" kid
by BrowserUk (Patriarch) on Oct 12, 2010 at 13:42 UTC | |
by MonkeyMonk (Sexton) on Oct 14, 2010 at 14:52 UTC | |
by BrowserUk (Patriarch) on Oct 14, 2010 at 15:18 UTC |