Commit Graph

3 Commits

Author SHA1 Message Date
Andriy Tylychko
3da5ad97a6 tasks dependencies:
* an ability to specify task prerequisites, either TTask or FTaskEvent
* redesigned FTaskEvent so it can be used as a prerequisite
* a helper function `Tasks::Prerequisites()` to specify multiple prerequisites
* added `Tasks::Wait()` function to wait for multiple tasks
* unit- and perf-tests

#rb danny.couture

[CL 16333765 by Andriy Tylychko in ue5-main branch]
2021-05-14 15:40:51 -04:00
Andriy Tylychko
e8186c905d added Tasks::FPipe::IsInContext() to check if the current call is in pipe's execution context
added Tasks::FPipe::WaitUntilEmpty() to wait for the last piped task completion

[CL 15844646 by Andriy Tylychko in ue5-main branch]
2021-03-27 10:49:15 -04:00
Andriy Tylychko
5cada42a4e Tasks: pipe implementation incompatible with old TaskGraph API. Implemented directly over LowLevelTasks.
Pipe is a chain of tasks that are executed one after another and so can be used for synchronised access to a shared resource. Should be used instead of dedicated threads as much as possible.

#rb steve.robb arne.schober

[CL 15700278 by Andriy Tylychko in ue5-main branch]
2021-03-15 16:47:30 -04:00