needperlhelp has asked for the wisdom of the Perl Monks concerning the following question:

i have a perl program running on windows platform, this program performs a file presence check and quits if a timeout condition is met.

often ( in a irregular pattern ) i get a SIGQUIT delivered to the perl program, during this time machine was up and running. i'm not sure what causes this signal to get delivered

eliminating the possibility of a user raising this signal, what are the other places in which i can look for answers, your suggestions to debug this program are welcomed

Replies are listed 'Best First'.
Re: SIGQUIT Delivery
by kyle (Abbot) on Feb 06, 2008 at 03:12 UTC

    It's hard to tell where a signal comes from; they just...arrive (see perlipc).

    If SIGQUIT is giving you trouble, you can ignore it using %SIG (see perlvar). Just do:

    $SIG{QUIT} = 'IGNORE';
Re: SIGQUIT Delivery
by BrowserUk (Patriarch) on Feb 06, 2008 at 12:22 UTC

    I guess the first question is how do you know you are getting a SIGQUIT?

    Windows doesn't do signals. Perl translates various system event notifications and messages into signals under the covers. Unfortunately, it does this in a rather piecemeal fashion, which means that there are only four signal numbers used, only two* of which are trappable and with the rest just causing the process to self terminate.

    (Or is it three? I forget. It's a bitch to test for, and it's not documented anywhere.),


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.