Version: Swoole: 4.1.0+
Since Swoole v4.1.0, you can use any IO libraries based on php_stream
within a coroutine context.
Libraries with coroutine supporte:
Libraries without coroutine supporte:
You can eanble coroutine with HOOK Flags.
SWOOLE_HOOK_ALL
SWOOLE_HOOK_SLEEP
SWOOLE_HOOK_FILE
SWOOLE_HOOK_CURL
SWOOLE_HOOK_TCP
SWOOLE_HOOK_UDP
SWOOLE_HOOK_UNIX
SWOOLE_HOOK_UDG
SWOOLE_HOOK_PROC
SWOOLE_HOOK_SSL
SWOOLE_HOOK_TLS
SWOOLE_HOOK_STREAM_FUNCTION
SWOOLE_HOOK_BLOCKING_FUNCTION
<?php
Swoole\Runtime::enableCoroutine(SWOOLE_HOOK_ALL | SWOOLE_HOOK_CURL);
SWOOLE_HOOK_ALL
containsSWOOLE_HOOK_CURL
from version v4.5.4
<?php
Swoole\Runtime::enableCoroutine(SWOOLE_HOOK_ALL ^ SWOOLE_HOOK_SLEEP);
Or,
<?php
$sch = new Swoole\Coroutine\Scheduler();
$sch->set(['hook_flags' => SWOOLE_HOOK_ALL]);
<?php
Swoole\Runtime::getHookFlags();
<?php
Swoole\Runtime::setHookFlags(SWOOLE_HOOK_ALL);
Swoole\Runtime::setHookFlags(0);
<?php
Swoole\Runtime::enableCoroutine(FALSE);