in reply to Re^8: Threads calling LWP causes exception
in thread Threads calling LWP causes exception
package perl_module1; use strict; use v5.8; use HTTP::Cookies; use LWP::UserAgent; use HTTP::Request::Common; use URI::Escape; use vars qw(@ISA @EXPORT); use Exporter (); our @ISA = qw(Exporter); our @EXPORT = qw( GetIt ); our $DEBUG = 0; sub GetIt { my ($url) = @_; my ($ua) = LWP::UserAgent->new(keep_alive => 1); $ua->timeout(60); # allow redirects for POST push @{ $ua->requests_redirectable }, 'POST'; # set the cookie my ($cookie) = './ac_cookie.txt' . $$; $ua->cookie_jar(HTTP::Cookies->new('file' => $cookie)); my ($response) = $ua->get($url); if ($response->is_success) { my ($page) = $response->content; print( $page ); } else { printf "Failed with %s\n", $response->message; } } return 1 if caller; package main; use strict; use warnings; use v5.8; use threads; use threads::shared; print("Starting LetsRock() \n"); ThreadFunc( $ARGV[ 0 ] ); LetsRock( $ARGV[ 0 ] ); print("LetsRock() ended \n"); exit(0); sub LetsRock { my $url = shift; my (@kids); for (my $x=0; $x < 5; $x++) { my ($kid) = threads->create( \&ThreadFunc, $url ); if (defined($kid)) { push(@kids, $kid); } sleep(1); } printf "Waiting for %s\n", $_->tid, $_->join for @kids; } sub ThreadFunc { return perl_module1::GetIt( $_[0] ); } __END__
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^10: Threads calling LWP causes exception
by BrowserUk (Patriarch) on Mar 11, 2006 at 05:55 UTC | |
by mojoshaneman (Novice) on Mar 11, 2006 at 17:33 UTC |