Skip to content

Commit

Permalink
Updated LibUvLoop to match the latest changes in reactphp/event-loop:…
Browse files Browse the repository at this point in the history
…master
  • Loading branch information
WyriHaximus committed Feb 23, 2018
1 parent b98c8a4 commit 066ada7
Showing 1 changed file with 26 additions and 28 deletions.
54 changes: 26 additions & 28 deletions src/LibUvLoop.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

use React\EventLoop\Tick\FutureTickQueue;
use React\EventLoop\Timer\Timer;
use React\EventLoop\Timer\TimerInterface;
use SplObjectStorage;

/**
Expand All @@ -15,12 +14,12 @@ class LibUvLoop implements LoopInterface
private $uv;
private $futureTickQueue;
private $timerEvents;
private $events = [];
private $flags = [];
private $listeners = [];
private $events = array();
private $flags = array();
private $listeners = array();
private $running;
private $signals;
private $signalEvents = [];
private $signalEvents = array();
private $streamListener;

public function __construct()
Expand All @@ -30,27 +29,13 @@ public function __construct()
$this->timerEvents = new SplObjectStorage();
$this->streamListener = $this->createStreamListener();

$this->signals = new SignalsHandler(
$this,
function ($signal) {
$this->signalEvents[$signal] = \uv_signal_init($this->uv);
\uv_signal_start($this->signalEvents[$signal], function () use ($signal) {
$this->signals->call($signal);
}, $signal);
},
function ($signal) {
if ($this->signals->count($signal) === 0) {
\uv_signal_stop($this->signalEvents[$signal]);
unset($this->signalEvents[$signal]);
}
}
);
$this->signals = new SignalsHandler();
}

/**
* {@inheritdoc}
*/
public function addReadStream($stream, callable $listener)
public function addReadStream($stream, $listener)
{
if (isset($this->listeners[(int) $stream]['read'])) {
return;
Expand All @@ -63,7 +48,7 @@ public function addReadStream($stream, callable $listener)
/**
* {@inheritdoc}
*/
public function addWriteStream($stream, callable $listener)
public function addWriteStream($stream, $listener)
{
if (isset($this->listeners[(int) $stream]['write'])) {
return;
Expand Down Expand Up @@ -104,7 +89,7 @@ public function removeWriteStream($stream)
/**
* {@inheritdoc}
*/
public function addTimer($interval, callable $callback)
public function addTimer($interval, $callback)
{
$timer = new Timer( $interval, $callback, false);

Expand All @@ -120,7 +105,7 @@ public function addTimer($interval, callable $callback)
$this->timerEvents->attach($timer, $event);
\uv_timer_start(
$event,
$interval * 1000,
(int)($interval * 1000),
0,
$callback
);
Expand All @@ -131,7 +116,7 @@ public function addTimer($interval, callable $callback)
/**
* {@inheritdoc}
*/
public function addPeriodicTimer($interval, callable $callback)
public function addPeriodicTimer($interval, $callback)
{
$timer = new Timer($interval, $callback, true);

Expand Down Expand Up @@ -173,19 +158,32 @@ public function isTimerActive(TimerInterface $timer)
/**
* {@inheritdoc}
*/
public function futureTick(callable $listener)
public function futureTick($listener)
{
$this->futureTickQueue->add($listener);
}

public function addSignal($signal, callable $listener)
public function addSignal($signal, $listener)
{
$this->signals->add($signal, $listener);

if (!isset($this->signalEvents[$signal])) {
$signals = $this->signals;
$this->signalEvents[$signal] = \uv_signal_init($this->uv);
\uv_signal_start($this->signalEvents[$signal], function () use ($signals, $signal) {
$signals->call($signal);
}, $signal);
}
}

public function removeSignal($signal, callable $listener)
public function removeSignal($signal, $listener)
{
$this->signals->remove($signal, $listener);

if (isset($this->signalEvents[$signal]) && $this->signals->count($signal) === 0) {
\uv_signal_stop($this->signalEvents[$signal]);
unset($this->signalEvents[$signal]);
}
}

/**
Expand Down

0 comments on commit 066ada7

Please sign in to comment.