#1253·crossbeam

关于 `T: Send` 不需要用于 `Guard::defer_destroy` 的文档示例不适用于该函数

作者: Kritzefitz创建于 2026年5月5日更新于 2026年5月5日

Guard::defer_destroy 的文档中有如下一段内容:

我们故意没有要求 T: Send,因为 Rust 的类型系统通常无法证明 T: Send,适用于典型的使用场景。例如,考虑以下代码片段,它展示了延迟释放共享引用的典型使用场景:

rust
let shared = Owned::new(7i32).into_shared(guard);
guard.defer_destroy(shared); // `Shared` 不是 `Send`!

看起来这个示例是从 Guard::defer_unchecked 中复制过来的,但我不清楚示例与 defer_destroy 是否需要 T: Send 有关。请注意,给出的示例即使 defer_destroy 需要 T: Send,也会正确编译和运行,因为 i32Send,并且通常情况下,T: Send 并不依赖于 Shared<'_, T>: Send

内容来源: crossbeam-rs/crossbeam