🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 开关选项 在`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`:打开所有类型 使用实例 ---- ```php 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`设置。