1.2 KiB
1.2 KiB
TaskGroup::AddDependency
记录一个任务对另一个任务的依赖关系。
void AddDependency(uint64_t taskId, uint64_t dependsOn);
行为说明
当前实现会在持锁状态下检查两个 ID 是否都位于 m_tasks 范围内;如果合法,就把 dependsOn 追加到 m_tasks[taskId].dependencies。
如果任一 ID 越界,函数会直接忽略这次调用。
参数
taskId- 依赖别人的任务。dependsOn- 被依赖的任务。
返回值
- 无。
当前实现限制
- 当前只保存依赖 ID,不会递增
pendingDepCount。 - 当前没有环检测。
- 当前没有“依赖完成后解锁任务”的运行时逻辑。
- 由于 TaskGroup 本身没有接入真正调度,这些依赖关系目前只是被记录下来,不会改变任务执行顺序。
设计说明
商业级任务系统里的依赖通常会驱动两个行为:
- 决定任务什么时候从 waiting 变成 ready。
- 决定整组任务什么时候可以触发 completion fence。
当前 AddDependency() 只覆盖了“数据结构里留一份关系记录”这一步。