You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
57
vendor/swoole/tests/swoole_process/signal.phpt
vendored
Executable file
57
vendor/swoole/tests/swoole_process/signal.phpt
vendored
Executable file
@ -0,0 +1,57 @@
|
||||
--TEST--
|
||||
swoole_process: signal
|
||||
--SKIPIF--
|
||||
<?php require __DIR__ . '/../include/skipif.inc'; ?>
|
||||
--INI--
|
||||
assert.active=1
|
||||
assert.warning=1
|
||||
assert.bail=0
|
||||
assert.quiet_eval=0
|
||||
|
||||
|
||||
--FILE--
|
||||
<?php
|
||||
require_once __DIR__ . '/../include/bootstrap.php';
|
||||
|
||||
//父进程中先设置信号
|
||||
swoole_process::signal(SIGCHLD, function ()
|
||||
{
|
||||
swoole_process::signal(SIGCHLD, null);
|
||||
swoole_process::signal(SIGTERM, null);
|
||||
echo "PARENT WAIT\n";
|
||||
swoole_event_exit();
|
||||
});
|
||||
|
||||
//测试被子进程覆盖信号
|
||||
swoole_process::signal(SIGTERM, function () {
|
||||
//释放信号,否则底层会报内存泄漏
|
||||
swoole_process::signal(SIGTERM, null);
|
||||
echo "PARENT SIGTERM\n";
|
||||
swoole_event_exit();
|
||||
});
|
||||
|
||||
|
||||
$pid = (new \swoole_process(function ()
|
||||
{
|
||||
swoole_process::signal(SIGTERM, function ($sig) {
|
||||
echo "CHILD SIGTERM\n";
|
||||
swoole_process::signal(SIGTERM, function ($sig) {
|
||||
echo "CHILD EXIT\n";
|
||||
swoole_event_exit();
|
||||
});
|
||||
});
|
||||
}))->start();
|
||||
|
||||
swoole_timer_after(500, function() use ($pid) {
|
||||
swoole_process::kill($pid, SIGTERM);
|
||||
swoole_timer_after(500, function() use ($pid) {
|
||||
swoole_process::kill($pid, SIGTERM);
|
||||
});
|
||||
});
|
||||
swoole_event_wait();
|
||||
?>
|
||||
--EXPECT--
|
||||
CHILD SIGTERM
|
||||
CHILD EXIT
|
||||
PARENT WAIT
|
||||
|
Reference in New Issue
Block a user