首页
下载
文档
问答社区
视频
捐赠
源代码
AI 助理
赞助商
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
商业产品
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
一键协程化的问题
1. 在提交问答前请尽可能回答以下问题: 在文档一键协程化中提到 通过 flags 设置要 Hook 的函数的范围,同时开启多个 flags 需要 | 操作,例如 Co::set(['hook_flags'=> SWOOLE_HOOK_TCP|SWOOLE_HOOK_SLEEP]);,被 Hook 的函数就无法在非协程容器中使用。 2. 请详细描述问题的产生过程,贴出相关的代码,最好能提供一份可稳定重现的简单脚本代码。 ```php Swoole\Coroutine::set(['hook_flags' => SWOOLE_HOOK_ALL]); var_dump(file_get_contents(__DIR__ . '/a.php')); ``` 3. 期望的结果是什么? 为什么还可以执行,应该属于非协程容器中使用吧? 4. 实际运行的结果是什么? 5. 你的版本? 贴出 `php --ri swoole` 所打印的内容 Swoole => enabled Author => Swoole Team <team@swoole.com> Version => 4.4.17 Built => Apr 11 2020 14:31:28 coroutine => enabled epoll => enabled eventfd => enabled signalfd => enabled cpu_affinity => enabled spinlock => enabled rwlock => enabled sockets => enabled openssl => OpenSSL 1.0.2k-fips 26 Jan 2017 pcre => enabled zlib => 1.2.7 mutex_timedlock => enabled pthread_barrier => enabled futex => enabled async_redis => enabled Directive => Local Value => Master Value swoole.enable_coroutine => On => On swoole.enable_library => On => On swoole.enable_preemptive_scheduler => Off => Off swoole.display_errors => On => On swoole.use_shortname => On => On swoole.unixsock_buffer_size => 8388608 => 8388608 6. 你使用的机器系统环境是什么(包括内核、PHP、gcc编译器版本信息)?可以使用`uname -a`, `php -v`, `gcc -v` 命令打印
发布于4年前 · 2 次浏览 · 来自
提问
cvdvsfrqxy
1. 在提交问答前请尽可能回答以下问题: 在文档一键协程化中提到 通过 flags 设置要 Hook 的函数的范围,同时开启多个 flags 需要 | 操作,例如 Co::set(['hook_flags'=> SWOOLE_HOOK_TCP|SWOOLE_HOOK_SLEEP]);,被 Hook 的函数就无法在非协程容器中使用。 2. 请详细描述问题的产生过程,贴出相关的代码,最好能提供一份可稳定重现的简单脚本代码。 ```php Swoole\Coroutine::set(['hook_flags' => SWOOLE_HOOK_ALL]); var_dump(file_get_contents(__DIR__ . '/a.php')); ``` 3. 期望的结果是什么? 为什么还可以执行,应该属于非协程容器中使用吧? 4. 实际运行的结果是什么? 5. 你的版本? 贴出 `php --ri swoole` 所打印的内容 Swoole => enabled Author => Swoole Team <team@swoole.com> Version => 4.4.17 Built => Apr 11 2020 14:31:28 coroutine => enabled epoll => enabled eventfd => enabled signalfd => enabled cpu_affinity => enabled spinlock => enabled rwlock => enabled sockets => enabled openssl => OpenSSL 1.0.2k-fips 26 Jan 2017 pcre => enabled zlib => 1.2.7 mutex_timedlock => enabled pthread_barrier => enabled futex => enabled async_redis => enabled Directive => Local Value => Master Value swoole.enable_coroutine => On => On swoole.enable_library => On => On swoole.enable_preemptive_scheduler => Off => Off swoole.display_errors => On => On swoole.use_shortname => On => On swoole.unixsock_buffer_size => 8388608 => 8388608 6. 你使用的机器系统环境是什么(包括内核、PHP、gcc编译器版本信息)?可以使用`uname -a`, `php -v`, `gcc -v` 命令打印
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2020-04-14
鲁飞
使用`strace`看一下系统调用你就会发现放在协程内和不在协程内的区别。 新文档描述可能有些拗口,已经修改了。 这里你可以旧文档的说明 https://wiki.swoole.com/wiki/page/991.html
赞
0
回复
2020-04-14
cvdvsfrqxy
回复
鲁飞
感谢解答
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。