diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-04-21 23:03:49 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-04-21 23:03:49 +0800 |
| commit | de8ee60ecb4396fa0567db666f99c1b8d1114bc7 (patch) | |
| tree | 04f02ba3786779b499b668ab5f0ac94e3bc03688 /docs/specs/00_conventions.md | |
| parent | 1fe056570220411bdb409c26e7580443a7bd9f4a (diff) | |
| download | lume-de8ee60ecb4396fa0567db666f99c1b8d1114bc7.tar.gz lume-de8ee60ecb4396fa0567db666f99c1b8d1114bc7.tar.xz | |
feat: Add documentation for atomic operations and memory order, standardize lock-free programming requirements
Diffstat (limited to 'docs/specs/00_conventions.md')
| -rw-r--r-- | docs/specs/00_conventions.md | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/docs/specs/00_conventions.md b/docs/specs/00_conventions.md index 91b98c9..c7e41c9 100644 --- a/docs/specs/00_conventions.md +++ b/docs/specs/00_conventions.md @@ -230,8 +230,10 @@ Phase 2 全部完成后,从各 spec 中提取汇总为 `docs/specs/lock_orderi ### 5.3 原子操作 - 引用计数(`refcount`)使用 `__atomic_fetch_sub` / `__atomic_fetch_add` + `__ATOMIC_ACQ_REL` +- **[强制]** 所有在多核间无锁共享的数据,必须使用 `lume::atomic<T>` 类型封装,并显式指定内存序。 - Spinlock 的 acquire/release 内含隐式 fence,临界区内无需额外屏障 - **禁止** 用裸 `volatile` 替代原子操作 +- **禁止** 在代码中直接使用 `__atomic_*` 内建函数,必须通过 `lume::atomic<T>` 包装器。 --- @@ -364,4 +366,3 @@ $(BUILD)/%.o: %.S | `make fmt` | `clang-format -i` 格式化所有源文件 | | `make lint` | `clang-tidy` 静态分析 | | `make test` | QEMU 无头冒烟测试 (Phase 4) | - |
