
Pin 与 Tokio真正不能移动的是什么Pin 常被误解为“对象地址永远不变”。它约束的是通过特定指针访问的值不能再被安全移动前提是该类型确实依赖地址稳定性。从自引用风险理解普通 async 状态机可能在不同挂起点保存对自身字段的引用。编译器生成的 Future 因而通常是 !Unpin执行器在轮询前把它固定再通过 Pinmut T 调用 poll。Pin 本身不让堆分配失效也不替代生命周期检查。手写投影时必须确认哪些字段可安全移动、哪些字段被固定。优先使用成熟投影工具确实需要 Unsafe 时把不变量写在实现旁边。怎样验证示例准备一个会多次 Pending 的最小 Future检查取消、超时和 Drop。不要用一次“成功打印”证明 Pin 正确应审查是否存在 mem::replace、错误投影或在固定后取走字段。理解移动边界比记住一组 API 更可靠。