ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Coro/Coro/Timer.pm
(Generate patch)

Comparing Coro/Coro/Timer.pm (file contents):
Revision 1.28 by root, Mon Dec 12 20:31:23 2005 UTC vs.
Revision 1.30 by root, Thu Dec 29 14:06:55 2005 UTC

33 33
34BEGIN { 34BEGIN {
35 eval "use Time::HiRes 'time'"; 35 eval "use Time::HiRes 'time'";
36} 36}
37 37
38$VERSION = 1.6; 38$VERSION = 1.7;
39@EXPORT_OK = qw(timeout sleep); 39@EXPORT_OK = qw(timeout sleep);
40 40
41=item $flag = timeout $seconds; 41=item $flag = timeout $seconds;
42 42
43This function will wake up the current coroutine after $seconds 43This function will wake up the current coroutine after $seconds
73sub bool { 73sub bool {
74 !${${$_[0]}} 74 !${${$_[0]}}
75} 75}
76 76
77sub DESTROY { 77sub DESTROY {
78 ${${$_[0]}}->cancel; 78 ${${$_[0]}}->cancel if ${${$_[0]}};
79 undef ${${$_[0]}}; # without this it leaks like hell. breaks the circular reference inside the closure 79 undef ${${$_[0]}}; # without this it leaks like hell. breaks the circular reference inside the closure
80} 80}
81 81
82use overload 'bool' => \&bool, '0+' => \&bool; 82use overload 'bool' => \&bool, '0+' => \&bool;
83 83

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines