summaryrefslogtreecommitdiff
path: root/docs/specs/00_conventions.md
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-04-21 23:03:49 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-04-21 23:03:49 +0800
commitde8ee60ecb4396fa0567db666f99c1b8d1114bc7 (patch)
tree04f02ba3786779b499b668ab5f0ac94e3bc03688 /docs/specs/00_conventions.md
parent1fe056570220411bdb409c26e7580443a7bd9f4a (diff)
downloadlume-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.md3
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) |
-