public function testWorkerGc() { $worker = new Worker(); $work = new WorkerTestWork(); $worker->start(); $worker->stack($work); $worker->shutdown(); $this->assertEquals(1, $worker->collect(function ($task) { return false; })); $this->assertEquals(0, $worker->collect(function ($task) { return $task->isGarbage(); })); }
public function testWorkerGc() { $worker = new Worker(); $work = new WorkerTestWork(); $worker->start(); $worker->stack($work); $work->synchronized(function ($work) { if (!$work->isGarbage()) { $work->wait(); } }, $work); $this->assertEquals($worker->collect(function ($task) { return false; }), 1); $this->assertEquals($worker->collect(function ($task) { return $task->isGarbage(); }), 0); }