… | |
… | |
82 | } |
82 | } |
83 | |
83 | |
84 | use Storable; |
84 | use Storable; |
85 | use base "Exporter"; |
85 | use base "Exporter"; |
86 | |
86 | |
87 | our $VERSION = 4.742; |
87 | our $VERSION = 4.745; |
88 | our @EXPORT = qw(thaw freeze nfreeze blocking_thaw blocking_freeze blocking_nfreeze); |
88 | our @EXPORT = qw(thaw freeze nfreeze blocking_thaw blocking_freeze blocking_nfreeze); |
89 | |
89 | |
90 | my $lock = new Coro::Semaphore; |
90 | my $lock = new Coro::Semaphore; |
91 | |
91 | |
92 | sub guard { |
92 | sub guard { |
… | |
… | |
175 | $buf |
175 | $buf |
176 | } |
176 | } |
177 | |
177 | |
178 | sub WRITE { |
178 | sub WRITE { |
179 | if ($next_cede <= (my $now = time)) { |
179 | if ($next_cede <= (my $now = time)) { |
180 | Coro::cede; |
180 | Coro::cede (); |
181 | $next_cede = $now + $GRANULARITY; |
181 | $next_cede = $now + $GRANULARITY; |
182 | } |
182 | } |
183 | |
183 | |
184 | (print {$_[2]} $_[1]) ? length $_[1] : -1 |
184 | (print {$_[2]} $_[1]) ? length $_[1] : -1 |
185 | } |
185 | } |