开关选项
在4.2
版本中,Runtime::enableCoroutine
增加了第二个参数,可以设置开关选项,选择要Hook
哪些PHP
函数。
支持的选项
SWOOLE_HOOK_SLEEP
:睡眠函数SWOOLE_HOOK_FILE
:文件操作stream
SWOOLE_HOOK_TCP
:TCP Socket
类型的stream
SWOOLE_HOOK_UDP
:UDP Socket
类型的stream
SWOOLE_HOOK_UNIX
:Unix Stream Socket
类型的stream
SWOOLE_HOOK_UDG
:Unix Dgram Socket
类型的stream
SWOOLE_HOOK_SSL
:SSL Socket
类型的stream
SWOOLE_HOOK_TLS
:TLS Socket
类型的stream
SWOOLE_HOOK_ALL
:打开所有类型
使用实例
Swoole\Runtime::enableCoroutine(true, SWOOLE_HOOK_SLEEP);
go(function () {
sleep(1);
//注意仅 hook 了睡眠函数,下面的文件操作函数会导致阻塞
$fp = fopen("test.log", "a+");
fwrite($fp, str_repeat('A', 2048);
fwrite($fp, str_repeat('B', 2048);
fclose();
});
关闭协程
调用Runtime::enableCoroutine(false)
关闭上一次设置的所有选项协程Hook
设置。
注意关闭操作不接受第二个参数,底层会判断上一次打开时设置的选项列表,关闭对应的协程Hook
设置。