in reply to Re^3: Win32 signals between parent/child
in thread Win32 signals between parent/child

I've replaced the line
kill INT, $pid;
with this line
kill 2, $pid;
I also added use strict to make sure everything else was correct, and the script now runs with no errors.
This does not, however, solve the problem. Per a previous post, kill() was not completely ported to win32. I'm looking at alternatives, but so far all I've found is socketpair. This is a bit heavier than I had hoped for. The script is for win32 only. If you have any suggestions for alternatives, I would love to hear them.

Replies are listed 'Best First'.
Re^5: Win32 signals between parent/child
by BrowserUk (Patriarch) on Aug 31, 2007 at 20:50 UTC
    Per a previous post, kill() was not completely ported to win32.

    It's a little more complicated than that. As I mentioned forks are threads on win32, so you are trying to signal from one thread of a process to another thread of the same process. But which thread receives that signal? Did the signal handler get cloned?

    Whilst Perl emulates signals between real perl processes using win32 message queues, only a very limited number of signals are trappable. Namely, INT, QUIT, TERM, and BREAK. All other values are immediatly translated into TerminateProcess(). Unfortunately this information is not documented anywhere.

    If you have any suggestions for alternatives, I would love to hear them.

    Um.. look ^^up :)


    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.