
Pin 與 Tokio真正不能移動的是什么Pin 常被誤解為“對象地址永遠(yuǎn)不變”。它約束的是通過特定指針訪問的值不能再被安全移動前提是該類型確實依賴地址穩(wěn)定性。從自引用風(fēng)險理解普通 async 狀態(tài)機(jī)可能在不同掛起點保存對自身字段的引用。編譯器生成的 Future 因而通常是 !Unpin執(zhí)行器在輪詢前把它固定再通過 Pinmut T 調(diào)用 poll。Pin 本身不讓堆分配失效也不替代生命周期檢查。手寫投影時必須確認(rèn)哪些字段可安全移動、哪些字段被固定。優(yōu)先使用成熟投影工具確實需要 Unsafe 時把不變量寫在實現(xiàn)旁邊。怎樣驗證示例準(zhǔn)備一個會多次 Pending 的最小 Future檢查取消、超時和 Drop。不要用一次“成功打印”證明 Pin 正確應(yīng)審查是否存在 mem::replace、錯誤投影或在固定后取走字段。理解移動邊界比記住一組 API 更可靠。