ap0calypse has asked for the wisdom of the Perl Monks concerning the following question:
hi,
i'm experiencing something strange here, maybe you guys can help me. that's the code:
#!/usr/bin/perl use strict; use POSIX ":sys_wait_h"; sub REAPER { 1 until waitpid(-1, WNOHANG) == -1 } $SIG{CHLD} = \&REAPER; my $run = 0; while (1) { my $pid = fork; if (defined $pid && $pid == 0) { # child my $gna; # demo workload, could be everything for ("aaaaa" .. "bbbbb") { $gna = uc $_; } exit; } else { sleep 1; $run++; print "\n$run\n"; } }
my approach was to create a parent process which increments the $run every second, regardless of the workload done by the child-process. unfortunately that doesn't work. it seems as if there was no sleep. can you help? what am i doing wrong?
everything i want is a parent that counts from 1 to whatever every second and a child to do the dirty work.
thanks in advance!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: fork() doesn't care about my sleep()?
by JavaFan (Canon) on Nov 10, 2010 at 23:41 UTC | |
by happy.barney (Friar) on Nov 11, 2010 at 08:34 UTC | |
|
Re: fork() doesn't care about my sleep()?
by BrowserUk (Patriarch) on Nov 11, 2010 at 00:13 UTC | |
by ap0calypse (Initiate) on Nov 11, 2010 at 15:25 UTC | |
|
Re: fork() doesn't care about my sleep()?
by locked_user sundialsvc4 (Abbot) on Nov 11, 2010 at 05:04 UTC | |
|
Re: fork() doesn't care about my sleep()?
by ikegami (Patriarch) on Nov 10, 2010 at 23:51 UTC |