rust 时雄是否有run_until_stalled的等效版本?

d4so4syb  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(87)

我有一个项目,其中我有一个主游戏循环。我也有一个GMAC运行时,并在每一帧上运行它,直到它的所有future都停止。我通过使用futures::LocalPool::run_until_stalled来做到这一点。现在我正在考虑使用时雄作为GMAC运行时,因为一些依赖项需要它。但我在时雄中找不到类似的功能,即手动驱动运行时,而不是它自己做自己的事情。
有谁知道时雄的单线程运行时是否具有此功能?

ovfsdjhp

ovfsdjhp1#

没有直接的类比。
futures_executor是一个非常基本的执行器,它不处理I/O。因此,future只能从其他future(或代码中的其他地方)引起的事件中被“唤醒”。在这种环境中,run_until_stalled是有意义的-如果所有future都是非活动的,它们不能互相唤醒,并且它们永远不会前进。
然而,时雄处理I/O和其他外部事件-如果底层套接字接收到更多数据或触发了OS信号,则不活动的未来将变为活动。所有变为不活动的任务并不是停滞状态,因为更多数据可能随时进入并激活其中一个任务。在这种环境中,run_until_stalled没有多大意义。
对于游戏循环的上下文,可以考虑在主线程上运行事件循环,在自己的线程中运行时雄运行时,并使用channels or other synchronization mechanisms来回传递数据。

相关问题