Files
XCEngine/docs/api/XCEngine/Threading/TaskGroup/AddDependency.md

1.2 KiB
Raw Blame History

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() 只覆盖了“数据结构里留一份关系记录”这一步。

相关文档