I understand from the docs that if e.g. tbb has 2 physical threads but many tasks, if two tasks reach the same lengthy postponed initialization code of shared data, and thus one task must wait for the other to finish (through a mutex), the thread running that waiting task, will wait as well, even as many other tasks are available to be executed.
If I'm right with this assumption, what would be a possible solution to this problem? Note that the reason for postponement is the fact that not all of this shared data is eventually initialized, and thus time is saved (in the sequential code at least)
Thanks for any insights.