use all non-arch-specific non-core dirs in @INC
[scpubgit/Tak.git] / lib / Tak.pm
index 92cc7dd..65a6153 100644 (file)
@@ -5,15 +5,23 @@ use strictures 1;
 
 our $VERSION = '0.001001'; # 0.1.1
 
-our $loop;
+our ($loop, $did_upgrade);
 
 sub loop { $loop ||= Tak::Loop->new }
 
+sub loop_upgrade {
+  return if $did_upgrade;
+  require IO::Async::Loop;
+  my $new_loop = IO::Async::Loop->new;
+  $loop->pass_watches_to($new_loop) if $loop;
+  $loop = $new_loop;
+  $did_upgrade = 1;
+}
+
 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 {