This is a classic case of dealing with signals in
eval. This code is dealing with a SIGHUP being sent at any time which will terminate the loop (not to terminate the child process). If SIGHUP is sent during the loop, but not during the eval, then the first handler will handle the signal and set
$done to 1.
However, if a SIGHUP was sent during the eval without the second signal handler, the SIGHUP would not cause the eval to die, which presumably would cause some problem.
I'm not sure this is a very good way of coding this. There appears to be a race condition, where if the signal is received at the beginning of the eval before the first line of code, the new signal handler is never used. I'd have to see the rest of the code and freshen myself on signal handling to know how to improve the code to avoid the race condition.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.