ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/eg/lwp
(Generate patch)

Comparing Coro/eg/lwp (file contents):
Revision 1.4 by root, Sun Nov 5 02:01:24 2006 UTC vs.
Revision 1.6 by root, Sat Apr 14 15:06:06 2007 UTC

1#!/usr/bin/perl 1#!/usr/bin/perl
2
3# this hack shows how one can get LWP to be less blocking.
4
5{
6 # we replace Socket::inet_aton and CORE::select
7 use Coro::Select; # must come early
8 use Coro::Util;
9 use Coro::Socket;
10 use IO::Socket::INET;
11 use Socket;
12 BEGIN {
13 *Socket::inet_aton = \&Coro::Util::inet_aton;
14 *IO::Socket::INET::new = sub { new Coro::Socket forward_class => @_ };
15 }
16}
17 2
18use Coro; 3use Coro;
19use Coro::Event; 4use Coro::Event;
5use Coro::LWP; # should be use'd as early as possible
20use LWP::Simple; 6use LWP::Simple;
21 7
22$SIG{PIPE} = 'IGNORE'; 8$SIG{PIPE} = 'IGNORE';
23 9
24async { 10my @pids;
25 print "hi2\n"; 11
12push @pid, async {
13 print "starting to fetch http://www.google.de/\n";
26 get "http://www.google.de/"; 14 get "http://www.google.de/";
27 print "ho2\n"; 15 print "fetched http://www.google.de/\n";
28}; 16};
29 17
30async { 18push @pid, async {
31 print "hi\n"; 19 print "starting to fetch http://www.yahoo.com/\n";
32 get "http://www.yahoo.com/"; 20 get "http://www.yahoo.com/";
33 print "ho\n"; 21 print "fetched http://www.yahoo.com/\n";
34
35}; 22};
36 23
37loop; 24$_->join for @pid;
38 25

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines