0
回答
openresty lua.ipc模块调用失败
科大讯飞通用文字识别100000次/天免费使用。立即申请   

我在用openresty的lua实现一个异步下载功能,在调用ngx.ipc接口的时候,会报如下错误

2017/08/30 15:45:45 [error] 19922#0: *6051 lua entry thread aborted: runtime error: attempt to yield across C-call boundary
stack traceback:
coroutine 0:
    [C]: in function 'run_timer_handler'
    [string "register_receive_handler"]:12: in function <[string "register_receive_handler"]:4>, context: ngx.timer

网上找了点资料,但感觉看不太懂,有的资料说是lua5.2能解决,我自己是lua5.1,我自己找的结果总结下是如果ipc.receive里注册的执行函数如果有yield操作就会报这个异常(我做过测试,写一个很简单的函数是不会出问题的,比如只有打印日志,或者一个for循环之类的,这个问题的出现应该是依赖于被调用函数的实现),请问大家有没有碰到过类似的问题,怎么解决的呢?

<无标签>
举报
Teomc.Xbc
发帖于10个月前 0回/41阅
顶部