The current handling of dependencies in Archer has two flaws:
- annotation of dependency synchronization is not limited to sibling tasks
- annotation of in/out dependencies is based on the assumption, that dependency variables will rarely be byte-sized variables.
This patch introduces a map in the generating task to manage the dependency variables for the child tasks. The map is only accesses from the generating task, so no locking is necessary. This limits the dependency-based synchronization to sibling tasks.
This patch also introduces proper handling for new dependency types such as mutexinoutset and inoutset.
clang-tidy: warning: 'PoolData<DependencyData>' has virtual functions but non-virtual destructor [clang-diagnostic-non-virtual-dtor]
not useful