ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 开关选项 [TOC] 在`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`设置。