• 开关选项
    • 支持的选项
    • 使用实例
    • 关闭协程

    开关选项

    4.2版本中,Runtime::enableCoroutine增加了第二个参数,可以设置开关选项,选择要Hook哪些PHP函数。

    支持的选项

    • SWOOLE_HOOK_SLEEP:睡眠函数
    • SWOOLE_HOOK_FILE:文件操作stream
    • SWOOLE_HOOK_TCPTCP Socket类型的stream
    • SWOOLE_HOOK_UDPUDP Socket类型的stream
    • SWOOLE_HOOK_UNIXUnix Stream Socket类型的stream
    • SWOOLE_HOOK_UDGUnix Dgram Socket类型的stream
    • SWOOLE_HOOK_SSLSSL Socket类型的stream
    • SWOOLE_HOOK_TLSTLS Socket类型的stream
    • SWOOLE_HOOK_ALL:打开所有类型

    使用实例

    1. Swoole\Runtime::enableCoroutine(true, SWOOLE_HOOK_SLEEP);
    2. go(function () {
    3. sleep(1);
    4. //注意仅 hook 了睡眠函数,下面的文件操作函数会导致阻塞
    5. $fp = fopen("test.log", "a+");
    6. fwrite($fp, str_repeat('A', 2048);
    7. fwrite($fp, str_repeat('B', 2048);
    8. fclose();
    9. });

    关闭协程

    调用Runtime::enableCoroutine(false)关闭上一次设置的所有选项协程Hook设置。

    注意关闭操作不接受第二个参数,底层会判断上一次打开时设置的选项列表,关闭对应的协程Hook设置。