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

Comparing Coro/eg/event (file contents):
Revision 1.1 by root, Sun Jul 15 02:36:54 2001 UTC vs.
Revision 1.3 by root, Sun Jul 15 15:58:16 2001 UTC

1#!/usr/bin/perl 1#!/usr/bin/perl
2 2
3use Coro; 3use Coro;
4use Coro::Event; 4use Coro::Event;
5 5
6sub keyboard : Coro {
7 my $w = Coro::Event->io(fd => *STDIN, poll => 'r'); 6my $stdin = Coro::Event->io(fd => \*STDIN, poll => 'r');
8 while() { 7
9 print "cmd> "; 8sub kbdline {
10 my $ev = $w->next; my $cmd = <STDIN>; 9 $stdin->next;
11 print "data> "; 10 my $x = <STDIN>; chomp $x; $x;
12 my $ev = $w->next; my $data = <STDIN>;
13 }
14} 11}
15 12
13sub keyboard : Coro {
14 $|=1;
15 while() {
16 print "cmd> "; my $cmd = kbdline;
17 print "data> "; my $data = kbdline;
18 print "cmd<$cmd> data<$data>\n";
19 print "working...";
20 do_timer(after => 1);
21 print "done\n";
22 }
23}
24
25sub idle : Coro {
26 my $w = Coro::Event->idle(min => 1, max => 2);
27 while () {
28 $w->next;
29 print ".";
30 };
31}
32
33sub finger : Coro {
34 use IO::Socket::INET;
35 # is there ANY way to do non-blocking connects with IO::Socket::INET?
36 # I don't see how...
37 my $io = new IO::Socket::INET PeerAddr => "noc.dfn.de:finger";
38 print "connected, sending\n";
39 syswrite $io, "trouble\n";
40 my $r = Coro::Event->io(fd => $io, poll => 'r');
41 my $buf;
42 $r->next while 0 != sysread $io, $buf, 8192, length $buf;
43 print $buf;
44 do_timer(after => 60);
45}
46
47Coro::Event->main;
48

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines