yield_local 可能会导致堆栈溢出
作者: Pr0methean创建于 2023年6月25日更新于 2026年7月16日
当一个作业调用 yield_local 时, Rayon 会将另一个作业加载到堆栈的顶部。如果有很多作业调用它,这可能会导致堆栈溢出。为了解决这个问题,Rayon 应为每个线程提供一个标志,用于跟踪 yield_local 是否已经在堆栈上。如果已经在堆栈上,并且再次调用,则 yield_local 应立即返回。(对于这种情况,可能需要在 Yield 枚举中添加第三个值。)或者,它可以检查可用的堆栈空间。
内容来源: rayon-rs/rayon