【问题标题】:How to detect and quick a lua function taking too long to respond?如何检测和快速响应时间过长的 lua 函数?
【发布时间】:2011-06-22 06:00:29
【问题描述】:

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

但我想使用来自 luasocket 的 UDP。 来自 luasocket 的 UDP receive() 方法在收到消息之前一直处于阻塞状态。

Corona SDK 不支持 LuaLanes。 所以在另一个线程中监听 udp 消息是完全不可能的。

所以我只是想在 lua 中是否有任何方法/技巧/解决方法来检测和取消一个函数,在这种情况下是 udp.receive(),响应时间过长?

提前致谢

【问题讨论】:

    标签: multithreading lua coronasdk luasocket lua-lanes


    【解决方案1】:

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

    触发一个计时器事件,表示每 100 毫秒调用一个函数。在该函数中恢复一个协程。

    在协程中。你可以循环读取传入的数据,如果不完整则让出。

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

    祝你好运.. F.

    【讨论】:

      【解决方案2】:

      您是否设置了更新超时?

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

      【讨论】:

      • 你可以同时使用这个超时时间和一些基于协程的包装器来做其他事情。
      猜你喜欢
      • 2021-04-06
      • 1970-01-01
      • 2013-06-17
      • 2016-10-24
      • 2016-07-20
      • 2018-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多