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