I am just getting the hang of this threading stuff, so forgive me if this is a clueless question but...
I am running a script of which this is a simplified example (processresponse is a sub not included):
Thing is, everyting in the while loop runs fine, but the stuff after it doesn't execute. Why not?#!/usr/bin/perl use strict; use LWP::UserAgent; use Proc::Queue size => 3; use POSIX ":sys_wait_h"; # imports WNOHANG my $pid; my $user_agent = LWP::UserAgent->new; $user_agent->timeout(30); my @urlstoget = qw( http://foo.com http://bar.com http://etc.com http: +//and-so-on.com ); my $starttime = time; while (@urlstoget) { my $url = shift(@urlstoget) }; $pid = fork; if(defined ($pid) and $pid==0) { my $request = HTTP::Request->new('GET', $url); my $response = $user_agent->request($request); my $dbh = connectdb('listeningpost'); processresponse($response) exit(0); } 1 while waitpid(-1, WNOHANG)>0; # reaps childs } my $elapsed = time - $starttime; open LOG,">getitemshtmlog.txt"; print LOG "$n urls in $elapsed seconds, ",$elapsed/$n," sec per url\n" +;
TIA...
Steve
In reply to fork/threads: running after childrem by cormanaz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |