loop_upgrade
[scpubgit/Tak.git] / lib / Tak.pm
index 92cc7dd..ce3ca2e 100644 (file)
@@ -9,11 +9,17 @@ our $loop;
 
 sub loop { $loop ||= Tak::Loop->new }
 
+sub loop_upgrade {
+  require IO::Async::Loop;
+  my $new_loop = IO::Async::Loop->new;
+  $loop->pass_watches_to($new_loop) if $loop;
+  $loop = $new_loop;
+}
+
 sub loop_until {
   my ($class, $done) = @_;
   return if $done;
-  my $loop = $class->loop;
-  $loop->loop_once until $_[1];
+  $class->loop->loop_once until $_[1];
 }
 
 sub await_all {