File: idle.t

package info (click to toggle)
libevent-perl 1.11-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 712 kB
  • ctags: 593
  • sloc: ansic: 3,034; perl: 1,128; makefile: 50
file content (40 lines) | stat: -rw-r--r-- 746 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# idle daydreams of -*-perl-*-

use Test; plan tests => 4;
use Event qw(loop unloop);

# $Event::Eval = 1;
#$Event::DebugLevel = 0;

package myobj;
use Test;

my $myobj;
sub idle {
    my ($o,$e) = @_;
    if (!$myobj) {
	# see if method callbacks work
	ok $o, 'myobj';
	ok $e->w->desc, __PACKAGE__;
    }
    ++$myobj;
}
Event->idle(cb => [__PACKAGE__,'idle'],
	    desc => __PACKAGE__);

package main;

my $count=0;
my $idle = Event->idle(desc => "exit", cb =>
		       sub {
			   my $e = shift;
			   ++$count;
			   unloop() if $count > 2 && $myobj;
		       });

ok ref($idle), 'Event::idle';

Event->idle(cb => sub { ok 0; Event->exit })->cancel;
Event->idle(cb => sub { $idle->again }, repeat => 1, desc => "again");

ok !defined loop();