コード例 #1
0
ファイル: Loop.php プロジェクト: async-interop/event-loop
 /**
  * Execute a callback within the scope of an event loop driver.
  *
  * @param callable $callback The callback to execute.
  * @param Driver $driver The event loop driver. If `null`, a new one is created from the set factory.
  *
  * @return void
  *
  * @see \Interop\Async\Loop::setFactory()
  */
 public static function execute(callable $callback, Driver $driver = null)
 {
     $previousDriver = self::$driver;
     self::$driver = $driver ?: self::createDriver();
     self::$level++;
     try {
         self::$driver->defer($callback);
         self::$driver->run();
     } finally {
         self::$driver = $previousDriver;
         self::$level--;
     }
 }