ev-abseil-static-assert-mutex-ordering-002¶
| 字段 | 值 |
|---|---|
| 项目 | abseil/abseil-cpp |
| 固定 commit | 2065f4ded055 |
| 路径 | absl/synchronization/mutex.cc |
| 行段 | L1747-L1750 |
| 特性 | static_assert |
| 许可证 | Apache-2.0 |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-27 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
用带消息的 static_assert 校验互斥量内部状态枚举的偏序关系
为什么典型¶
无符号比较依赖枚举取值顺序,静态断言在编译期锁定了这一不变量。
摘录¶
static_assert(kMuEvent > kMuWait, "Needed for should_try_cas_fast");
static_assert(kMuEvent > kMuDesig, "Needed for should_try_cas_fast");
static_assert(kMuWriter > kMuWait, "Needed for should_try_cas_fast");
static_assert(kMuWriter > kMuDesig, "Needed for should_try_cas_fast");
备注¶
生产路径;快速路径用无符号比较判断等待状态,顺序错则逻辑失效。