# 并发、异步与同步检查清单

## Send、Sync 与跨线程

- 跨 `spawn` / 线程边界的类型是否满足 `Send`；共享状态是否错误实现 `Sync`（例如在 `static mut` 或全局可变状态上新增未同步访问）。
- `Rc` / `RefCell` 等是否被移到异步任务或线程边界而编译通过依赖局部假设，或 `Arc` 使用是否遗漏弱引用循环导致的泄漏路径。

## 异步与运行时

- `async` 函数中是否在关键路径上阻塞（同步 I/O、`std::thread::sleep`、持锁 await 等），导致吞吐或死锁风险。
- `select!` / `join!` 等是否遗漏分支取消或错误传播，导致任务泄漏或僵尸 future。
- `JoinHandle` / `AbortHandle` 是否在错误路径上未 await 或未 detach，造成资源悬挂。

## 锁与原子

- 锁粒度是否过大或锁顺序是否与现有代码交叉导致死锁（仅在 diff 能显示锁获取顺序时指出）。
- `Ordering` 是否过弱，导致数据竞争或未同步可见性；是否误用 `compare_exchange` 返回值。
