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

Comparing Coro/eg/lwp (file contents):
Revision 1.3 by root, Mon Sep 3 02:50:18 2001 UTC vs.
Revision 1.8 by root, Mon Nov 24 04:56:38 2008 UTC

1#!/usr/bin/perl 1#!/usr/bin/perl
2 2
3# this hack shows how one can overwrite IO::Socket::INET to provide
4# non-blocking sockets by default. This makes lwp magically
5# non-blocking. I hope.
6
7{
8 # this is all the required magic: we replace the constructor.
9 use Coro::Socket;
10 use IO::Socket::INET;
11 sub IO::Socket::INET::new {
12 shift; new Coro::Socket @_;
13 };
14}
15
16use Coro; 3use Coro;
17use Coro::Event; 4use Coro::AnyEvent;
5use Coro::LWP; # should be use'd as early as possible
18use LWP::Simple; 6use LWP::Simple;
19 7
20$SIG{PIPE} = 'IGNORE'; 8$SIG{PIPE} = 'IGNORE';
21 9
22async { 10my @pids;
23 print "hi\n";
24 get "http://localhost/";
25 print "ho\n";
26 11
27}; 12for (1..1) {
13 push @pid, async {
14 print "starting to fetch http://www.google.de/\n";
15 get "http://www.google.de/";
16 print "fetched http://www.google.de/\n";
17 };
28 18
29async { 19 push @pid, async {
30 print "hi2\n"; 20 print "starting to fetch http://www.yahoo.com/\n";
31 get "http://localhost/"; 21 get "http://www.yahoo.com/";
32 print "ho2\n"; 22 print "fetched http://www.yahoo.com/\n";
33}; 23 };
24}
34 25
35loop; 26$_->join for @pid;
27

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines