Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

How to communicate w/ forked child under Strawberry

by shadrack (Acolyte)
on Dec 05, 2012 at 23:43 UTC ( #1007427=perlquestion: print w/ replies, xml ) Need Help??
shadrack has asked for the wisdom of the Perl Monks concerning the following question:

Using Win32::GUI on Strawberry perl 5.16.2. According to the FAQ (http://perl-win32-gui.sourceforge.net/cgi-bin/docs.cgi?doc=userguide-faq) the way to have a long-running "background" process not block the GUI is to do a fork(), and have the child do the work.

I've tested this and it works, but I'm unclear about how to pass a message from the parent to the child in this situation. If I was on UNIX, I'd just do something like

kill USR1 $childpid

but this is Windows, not UNIX, and apparently the return value of fork() is a "pseudo-thread ID" which perlfork says can by used by kill() EXCEPT THAT "the signal will not be delivered while the pseudo-process is blocked by a system call". Well, it just so happens that the child's innermost loop is a select() statement, so from a practical standpoint the child has just shy of a snowball's chance of ever receiving the signal sent by kill (I tested it). So my problem remains: given that fork() returns a "pseudo-thread ID" instead of a real PID or TID, how do I send a message from the parent to the child?

Comment on How to communicate w/ forked child under Strawberry
Download Code
Re: How to communicate w/ forked child under Strawberry
by Anonymous Monk on Dec 06, 2012 at 14:07 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1007427]
Approved by GrandFather
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2015-07-05 04:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls