首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
sever->start() 和 signal处理的冲突问题
我最近冲github里面下载了最新的版本 swoole,编译以后,再运行原有的程序 --- 上面的程序省略 就是常规的 create server, 注册 open ,message, close 的callback --- {{{ swoole_process::signal(SIGCHLD, function($sig) { //必须为false,非阻塞模式 echo "enter signal.\n"; while($ret = swoole_process::wait(false)) { echo "child PID={$ret['pid']}\n"; } }); echo "enter loop.\n"; $serv->start(); }}} 执行以后出现,错误信息. PHP Fatal error: swoole_http_server::start(): create server failed. Error: (ERROR 9001): The swoole_server must create before client in /usr/share/nginx/LobbyServer/LobbyServer.php on line 209 把 swoole_process::signal 这段语句删掉,就没有问题了。 但是这个写法,在之前版本的swoole下是可以执行的. (pecl 取得的 swoole版本) , 在github的swoole版本下不可以。 有什么办法可以避开这个错误?
发布于9年前 · 0 次浏览 · 来自
提问
u
unravel
我最近冲github里面下载了最新的版本 swoole,编译以后,再运行原有的程序 --- 上面的程序省略 就是常规的 create server, 注册 open ,message, close 的callback --- {{{ swoole_process::signal(SIGCHLD, function($sig) { //必须为false,非阻塞模式 echo "enter signal.\n"; while($ret = swoole_process::wait(false)) { echo "child PID={$ret['pid']}\n"; } }); echo "enter loop.\n"; $serv->start(); }}} 执行以后出现,错误信息. PHP Fatal error: swoole_http_server::start(): create server failed. Error: (ERROR 9001): The swoole_server must create before client in /usr/share/nginx/LobbyServer/LobbyServer.php on line 209 把 swoole_process::signal 这段语句删掉,就没有问题了。 但是这个写法,在之前版本的swoole下是可以执行的. (pecl 取得的 swoole版本) , 在github的swoole版本下不可以。 有什么办法可以避开这个错误?
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-05-17
鬼
鬼才
必须在worker进程创建之后才能设置信号。这里在 new swoole_server之前监听了信号,会与swoole_server->start发生冲突。
赞
0
回复