为什么Tokio的Runtime::block_on_all需要具有'static生命周期的future?

3
处理Tokio和futures时,大多数情况下,传递给Tokio运行时的future必须具有“'static”生命周期。我理解这是因为future可能会被移动到另一个线程,在那里它可能会超出定义它的位置的生存期。
存在一个方法Runtime::block_on_all,它保证调用的future将在调用结束时终止,并返回运行此future的结果。
在这种情况下,除了Tokio代码简单之外,我不明白为什么future必须是“static”。
有人能解释一下吗?
1个回答

3

2
这不会是第一个 Rust API 从保守开始,随着时间的推移放松要求,因此我认为这并不是必要的,只是显然正确,因此有助于发布。 - Matthieu M.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接