1--TEST--
2swoole_server/task: task in user process
3--SKIPIF--
4<?php require __DIR__ . '/../../include/skipif.inc'; ?>
5--FILE--
6<?php
7require __DIR__ . '/../../include/bootstrap.php';
8$pm = new SwooleTest\ProcessManager;
9$pm->setWaitTimeout(60);
10$pm->parentFunc = function ($pid) use ($pm) {
11    echo "SUCCESS\n";
12    $pm->kill();
13};
14
15$pm->childFunc = function () use ($pm)
16{
17    ini_set('swoole.display_errors', 'Off');
18    $serv = new swoole_server('127.0.0.1', $pm->getFreePort());
19    $serv->set(array(
20        "worker_num" => 1,
21        'task_worker_num' => 2,
22        'log_file' => '/dev/null',
23    ));
24
25    $process = new \Swoole\Process(function ($process) use ($serv)
26    {
27        $serv->task(['type' => 'array', 'value' => 'user process']);
28        sleep(60);
29    });
30
31    $serv->addProcess($process);
32
33    $serv->on('receive', function (swoole_server $serv, $fd, $rid, $data)
34    {
35
36    });
37
38    $serv->on('task', function (swoole_server $serv, $task_id, $worker_id, $data) use($pm)
39    {
40        Assert::false($serv->finish("OK"));
41        $pm->wakeup();
42    });
43
44    $serv->on('finish', function (swoole_server $serv, $fd, $rid, $data)
45    {
46
47    });
48    $serv->start();
49};
50
51$pm->childFirst();
52$pm->run();
53?>
54--EXPECT--
55SUCCESS
56