X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=scpubgit%2FTak.git;a=blobdiff_plain;f=lib%2FTak%2FLoop.pm;h=09af744e0e39d6dcae04e2ce973d5eb79e48d9bd;hp=a1a4db3738ca38e0e7f67b6939ebaabdc70877c1;hb=addc801e40b2b3ce69c002b38f57bda93bca6707;hpb=8facab5f2e83e16470b817e2f06891f508bf50ec diff --git a/lib/Tak/Loop.pm b/lib/Tak/Loop.pm index a1a4db3..09af744 100644 --- a/lib/Tak/Loop.pm +++ b/lib/Tak/Loop.pm @@ -8,6 +8,16 @@ has is_running => (is => 'rw', clearer => 'loop_stop'); has _read_watches => (is => 'ro', default => sub { {} }); has _read_select => (is => 'ro', default => sub { IO::Select->new }); +sub pass_watches_to { + my ($self, $new_loop) = @_; + foreach my $fh ($self->_read_select->handles) { + $new_loop->watch_io( + handle => $fh, + on_read_ready => $self->_read_watches->{$fh} + ); + } +} + sub watch_io { my ($self, %watch) = @_; my $fh = $watch{handle};