Re: Use of multiple loops

[email protected] ((Ton Hospel)) Tue, 25 May 2004 18:59:47 +0000 (UTC)
Newsgroups perl.loop
Organization lunix confusion services
Message-ID <[email protected]>
In article <[email protected]>,
	Joshua N Pritikin <[email protected]> writes:
> Try running the same with
> 
>   $Event:DebugLevel = 1;
> 
>> Or is this an Event bug ?
>> (all of this is with Event version 1.0 under perl 5.8.2 on a linux machine
> 
> Yah, it's probably a bug.
> 
Mm, does that mean you can't reproduce it ?
I also tried it on a Solaris 5.9 system with perl 5.8.3, where I see the 
same problems (ps, some Event selftests fail on solaris, but that seems
unrelated (and on my linux box from the original report all selftests pass))

Debuglevel 1 doesn't cause any extra output, so I used level 3 instead.
The testprogram is now:

#!/usr/bin/perl -w
use strict;
use Event qw(loop unloop);
$Event::DebugLevel = 3;

my $read_refs;
unless (@ARGV) {
    Event->timer(after => 0.1, cb => sub {
        print STDERR "auto exit\n";
        # unloop;
    });
    loop();
    print STDERR "exited\n";
}

my $hit = 0;
pipe(local *RD, local *WR) || die "Pipe: $!";
my $workers = 5;
my @count = (0) x ($workers+1);
my @wid;
sub fun {
    $count[shift]++;
    if (++$hit == 10) {
        $_->cancel for @wid;
        unloop();
    } elsif ($hit > 10) {
        print STDERR "BAD $hit alarm count=@count\n";
        exit if $hit > 20;
    }
}
for my $n (1..$workers) {
    my $alarm;
    $alarm = sub {
        $wid[$n] = Event->timer(after => 0, cb => $alarm);
        fun($n);
    };
    $wid[$n] = Event->timer(after => 0, cb => $alarm);
}
$wid[0] = Event->io(fd => \*RD, poll => "r", cb => sub { fun(0) });
close WR;
loop;
close RD;
print STDERR "Good alarm count=@count\n";

For the failing case (no argument) the debug output is:

creating Event::timer desc='?? test.pl:11'
	Event::Watcher::init('Event::timer=HASH(0x816108c)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0.1,'cb','CODE(0x8174880)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0.1,'cb','CODE(0x8174880)') called at test.pl line 11
Event: multiplex 0.0988s 
 at test.pl line 12
auto exit
Event: unloop(<undef>)
exited
creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x8177850)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8177844)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8177844)') called at test.pl line 37
creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x8177970)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x822db38)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x822db38)') called at test.pl line 37
creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x8177a24)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778ec)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778ec)') called at test.pl line 37
creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x8177ad8)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778c8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778c8)') called at test.pl line 37
creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x8177b8c)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778f8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778f8)') called at test.pl line 37
creating Event::io desc='?? test.pl:39'
	Event::Watcher::init('Event::io=HASH(0x8177434)','HASH(0x821ec34)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/io.pm line 16
	Event::io::new('Event::io','fd','GLOB(0x823e5fc)','poll','r','cb','CODE(0x822d9dc)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','fd','GLOB(0x823e5fc)','poll','r','cb','CODE(0x822d9dc)') called at test.pl line 39
Event: multiplex -0.0034s 
 at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177518)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8177844)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8177844)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81775c0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x81775d8)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x822db38)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x822db38)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81775c0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177428)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778ec)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778ec)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81775c0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177644)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778c8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778c8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81775c0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177680)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778f8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778f8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81775c0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
Event: multiplex -0.0031s 
 at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177698)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8177844)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8177844)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81776ec)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x81776f8)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x822db38)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x822db38)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81776ec)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177734)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778ec)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778ec)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81776ec)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177620)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778c8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778c8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81776ec)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 11 alarm count=2 2 2 2 2 1
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x81776a4)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778f8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778f8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81776ec)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 12 alarm count=2 2 2 2 2 2
Event: multiplex -0.0013s 
 at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177608)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778c8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778c8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x81776e0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 13 alarm count=2 2 2 2 3 2
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177680)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778f8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778f8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x8177464)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 14 alarm count=2 2 2 2 3 3
Event: multiplex -0.0048s 
 at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x81777c4)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778c8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778c8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x8177530)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 15 alarm count=2 2 2 2 4 3
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x81776ec)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778f8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778f8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x8241c4c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 16 alarm count=2 2 2 2 4 4
Event: multiplex -0.0012s 
 at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177764)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778c8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778c8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x8241c28)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 17 alarm count=2 2 2 2 5 4
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177464)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778f8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778f8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x8241cc4)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 18 alarm count=2 2 2 2 5 5
Event: multiplex -0.0012s 
 at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8177b2c)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778c8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778c8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x8241ca0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 19 alarm count=2 2 2 2 6 5
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8241c4c)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778f8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778f8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x8241d3c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 20 alarm count=2 2 2 2 6 6
Event: multiplex -0.0056s 
 at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x817777c)','HASH(0x8214a54)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81778c8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81778c8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x8241d18)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
BAD 21 alarm count=2 2 2 2 7 6

---------------------------------------------------------------------------
For the working case (giving an argument), the output is:

creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x822dab4)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81846b0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81846b0)') called at test.pl line 37
creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x8174c70)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174c7c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174c7c)') called at test.pl line 37
creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x8174d3c)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174c4c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174c4c)') called at test.pl line 37
creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x8174df0)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174cb8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174cb8)') called at test.pl line 37
creating Event::timer desc='?? test.pl:37'
	Event::Watcher::init('Event::timer=HASH(0x8174ea4)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174c1c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174c1c)') called at test.pl line 37
creating Event::io desc='?? test.pl:39'
	Event::Watcher::init('Event::io=HASH(0x8174f34)','HASH(0x821ec40)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/io.pm line 16
	Event::io::new('Event::io','fd','GLOB(0x823e608)','poll','r','cb','CODE(0x822d9e8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','fd','GLOB(0x823e608)','poll','r','cb','CODE(0x822d9e8)') called at test.pl line 39
Event: multiplex -0.0038s 
 at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8240134)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81846b0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81846b0)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x82400e0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x82401ac)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174c7c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174c7c)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x82400e0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8240128)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174c4c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174c4c)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x82400e0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8240194)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174cb8)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174cb8)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x82400e0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8240254)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174c1c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174c1c)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x82400e0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
Event: multiplex -0.0078s 
 at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x824026c)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x81846b0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x81846b0)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x82402c0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x82402cc)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174c7c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174c7c)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x82402c0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
creating Event::timer desc='?? test.pl:34'
	Event::Watcher::init('Event::timer=HASH(0x8240308)','HASH(0x8214a60)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/timer.pm line 46
	Event::timer::new('Event::timer','after',0,'cb','CODE(0x8174c4c)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event/Watcher.pm line 21
	Event::Watcher::__ANON__('Event','after',0,'cb','CODE(0x8174c4c)') called at test.pl line 34
	main::__ANON__('Event::Event=SCALAR(0x82402c0)') called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	eval {...} called at /usr/lib/perl5/site_perl/5.8.2/i686-linux-64int-ld/Event.pm line 162
	Event::loop() called at test.pl line 41
Event: unloop(<undef>)
Good alarm count=2 2 2 2 1 1