如何检测和快速执行lua功能需要太长时间才能响应?

时间:2011-06-22 06:00:29

标签: multithreading lua corona luasocket lua-lanes

我正在使用Corona SDK制作一个需要luasocket的简单应用。 Corona SDK支持luasocket做async http req。

但我想使用luasocket的UDP。 来自luasocket的UDP receive()方法阻塞,直到收到消息为止。

Corona SDK不支持LuaLanes。 因此,在另一个线程中监听udp消息是不可能的。

所以我只是想在lua中是否有任何方法/技巧/解决方法来检测和取消,如果一个函数(在本例中为udp.receive())花费太长时间来响应?

提前致谢

2 个答案:

答案 0 :(得分:3)

是..协同和事件.. http://www.lua.org/pil/9.4.html

触发一个定时器事件,说每100毫秒调用一个函数..在该函数中恢复一个协程..

在协程中。您可以循环读取传入的数据,如果不完整则会产生。

这个例子很好地解释了这个......

祝你好运.. F.

答案 1 :(得分:2)

您是否设置了upd超时?

请参阅页面底部的http://w3.impa.br/~diego/software/luasocket/udp.html