From 7dd7858ef23ec62f10094c8dea8933e7f5cf8ac9 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Thu, 19 Mar 2026 01:03:14 +0800 Subject: [PATCH] docs: fix threading module documentation discrepancies - Fix SpinLock docs: clarify lock()/unlock()/try_lock() are non-const (matching source implementation in SpinLock.h) - Add missing LambdaTask::Execute() method to inherited methods table - Update TaskGroup::Wait() docs: clarify m_pendingCount never decrements causing indefinite block even after all tasks complete (not just unexecuted tasks) - Update TaskGroup::IsComplete() docs: document same m_pendingCount issue causing incorrect return values --- docs/api/threading/lambdatask/lambdatask.md | 6 ++++++ docs/api/threading/spinlock/spinlock.md | 2 +- docs/api/threading/task-group/iscomplete.md | 2 ++ docs/api/threading/task-group/wait.md | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/api/threading/lambdatask/lambdatask.md b/docs/api/threading/lambdatask/lambdatask.md index 1251db80..15c6ea23 100644 --- a/docs/api/threading/lambdatask/lambdatask.md +++ b/docs/api/threading/lambdatask/lambdatask.md @@ -24,6 +24,12 @@ |------|------| | [`LambdaTask`](constructor.md) | 构造 Lambda 任务 | +## 继承方法 + +| 方法 | 描述 | +|------|------| +| `Execute()` | 执行封装的可调用对象(继承自 ITask,可重写) | + ## 使用示例 ```cpp diff --git a/docs/api/threading/spinlock/spinlock.md b/docs/api/threading/spinlock/spinlock.md index b91168d9..c6d2f6da 100644 --- a/docs/api/threading/spinlock/spinlock.md +++ b/docs/api/threading/spinlock/spinlock.md @@ -22,7 +22,7 @@ ## STL 兼容方法 -支持 `lock()`, `unlock()`, `try_lock()` 以兼容 STL 的 lockable 概念。 +支持 `lock()`, `unlock()`, `try_lock()` 以兼容 STL 的 lockable 概念。**注意**:这些方法为非 `const` 成员函数。 ## 使用示例 diff --git a/docs/api/threading/task-group/iscomplete.md b/docs/api/threading/task-group/iscomplete.md index 88df587a..8d4b42a8 100644 --- a/docs/api/threading/task-group/iscomplete.md +++ b/docs/api/threading/task-group/iscomplete.md @@ -12,6 +12,8 @@ bool IsComplete() const **复杂度:** O(1) +**注意:** 由于实现缺陷,`m_pendingCount` 计数器在任务完成后不会递减,因此此方法在所有任务执行完毕后仍会错误地返回 false。 + **示例:** ```cpp diff --git a/docs/api/threading/task-group/wait.md b/docs/api/threading/task-group/wait.md index ad0c2064..7c94e5bc 100644 --- a/docs/api/threading/task-group/wait.md +++ b/docs/api/threading/task-group/wait.md @@ -14,7 +14,7 @@ void Wait() **注意:** - 如果任务组已被取消,此方法将立即返回。 -- 如果任务组中还有未执行且未被取消的任务,调用此方法将永久阻塞(这是当前实现的限制)。 +- **警告**:由于实现缺陷,`m_pendingCount` 计数器在任务完成后不会递减,导致 `Wait()` 在所有任务执行完毕后仍会永久阻塞。这是当前实现的已知问题。 - 建议使用 `WaitFor()` 代替以避免永久阻塞。 **示例:**