1--TEST-- 2swoole_server/task: task_ipc_mode = 2 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->parentFunc = function ($pid) use ($pm) { 10 go(function () use ($pm) { 11 echo httpGetBody("http://127.0.0.1:{$pm->getFreePort()}/"); 12 $pm->kill(); 13 }); 14}; 15$pm->childFunc = function () use ($pm) { 16 $server = new swoole_http_server('127.0.0.1', $pm->getFreePort(), SERVER_MODE_RANDOM); 17 $server->set([ 18 'log_file' => '/dev/null', 19 'open_tcp_nodelay' => true, 20 'task_worker_num' => 4, 21 'task_ipc_mode' => 2, 22 'dispatch_mode' => 2 23 ]); 24 $server->on('workerStart', function () use ($pm) { 25 $pm->wakeup(); 26 }); 27 $server->on('request', function (swoole_http_request $request, swoole_http_response $response) use ($server) { 28 $response->detach(); 29 $server->task($response->fd); 30 }); 31 $server->on('task', function ($server, $task_id, $worker_id, string $fd) { 32 $response = swoole_http_response::create($fd); 33 $response->end("Hello Swoole!\n"); 34 }); 35 $server->on('finish', function () { }); 36 $server->on('close', function () { }); 37 $server->start(); 38}; 39$pm->childFirst(); 40$pm->run(); 41?> 42--EXPECT-- 43Hello Swoole! 44