1 |
package AnyEvent::Impl::Event; |
2 |
|
3 |
no warnings; |
4 |
|
5 |
use Event (); |
6 |
|
7 |
sub io { |
8 |
my ($class, %arg) = @_; |
9 |
$arg{fd} = delete $arg{fh}; |
10 |
bless \(my $x = Event->io (%arg)), $class |
11 |
} |
12 |
|
13 |
sub timer { |
14 |
my ($class, %arg) = @_; |
15 |
my $cb = delete $arg{cb}; |
16 |
bless \(my $w = Event->timer ( |
17 |
%arg, |
18 |
cb => sub { |
19 |
$_[0]->w->cancel; |
20 |
$cb->(); |
21 |
}, |
22 |
)), $class |
23 |
} |
24 |
|
25 |
sub DESTROY { |
26 |
${$_[0]}->cancel; |
27 |
} |
28 |
|
29 |
sub condvar { |
30 |
my $class = shift; |
31 |
|
32 |
bless \my $flag, $class |
33 |
} |
34 |
|
35 |
sub broadcast { |
36 |
${$_[0]}++; |
37 |
} |
38 |
|
39 |
sub wait { |
40 |
Event::one_event while !${$_[0]}; |
41 |
} |
42 |
|
43 |
sub one_event { |
44 |
Event::one_event; |
45 |
} |
46 |
|
47 |
1 |
48 |
|