Teifke Sascha ZFF FW-P2E wrote:
I found the script below and tried, but Using Apache for Win32 and IE 5.5 as
a client the client still waits for the child process to finish until it prints the
desired output and
brake the connection to the server.


Any Ideas?

Sascha --


Combing through perldoc perlfork:

"
On some platforms such as Windows where the fork() system call is not
available, Perl can be built to emulate fork() at the interpreter level.
While the emulation is designed to be as compatible as possible with the
real fork() at the level of the Perl program, there are certain
important differences that stem from the fact that all the pseudo child
"processes" created this way live in the same real process as far as the
operating system is concerned.
"

and

"
On some platforms such as Windows where the fork() system call is not
available, Perl can be built to emulate fork() at the interpreter level.
While the emulation is designed to be as compatible as possible with the
real fork() at the level of the Perl program, there are certain
important differences that stem from the fact that all the pseudo child
"processes" created this way live in the same real process as far as the
operating system is concerned.
"

and finally:

"
BUGS
[...] the fork() emulation is not recommended for use in production applications at this time.
"


So, I ran it on my linux box. Works just like you'd want it to.

To do it on windoze, maybe this'll work:

------------------------------------------
script 1:

#!C:\Perl\bin\perl.exe

my $path = '"C:/Program Files/Apache Group/Apache/htdocs/test"/';
my $url = "http://localhost/test/";;
my $mask = sprintf("%06d",rand (10000));
my @argz = (" \"C:\\Program Files\\Apache Group\\Apache\\cgi-bin\\child.pl\" $path $mask");


# this ist the branch for the parent
print "Content-type: text/html\n\n";
print "<html><body>";
print "Your request has been received<br>";
print "and is beeing processed. $result<br>";
print "You can access the results at ";
print "<a href=\"" . $url . "A" . $mask . ".html\">A" . $mask .".html</a> ";
print "once completed.";
print "</body></html>";


exec ('C:\Perl\bin\perl.exe', @argz);
        exit;   # terminate the parent process
---------------------------------------------------------------
script 2 child.pl

#!C:\Perl\bin\perl.exe
        # this is the branch for the child process

        open STDIN, "/dev/null";
        open STDOUT, "/dev/null";     
      open STDERR, "/dev/null";

sleep ( 5 );

$path = shift; $mask = shift;
        $filename = $path . "A" . $mask . ".html";
print $filename;
        open ( OFD , "> $filename " ) or die "Unable to open: $!";

        # open the file to write the results to
                print OFD "<HTML><BODY>";
                print OFD "The results of your query are 4 and 12.";
                print OFD "</BODY><HTML>";
                close ( OFD );

exit; # terminate the child process

-----------------------------------------------

-- michael higgins


_______________________________________________ Perl-Win32-Admin mailing list [EMAIL PROTECTED] To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to