I have trouble understanding the second task scheduling constraint (2.7.1, p59, l29-32):
"Other scheduling of new tied tasks is constrained by the set of task regions that are currently tied to the thread, and that are not suspended in a barrier region. If this set is empty, any new tied task may be scheduled. Otherwise, a new tied task may be scheduled only if it is a descendant of every task in the set."
Does the above talk about just explicit barriers, or implicit barriers too (at the end of worksharing constructs without nowait)? Shouldn't the set also exclude tasks suspended in taskwait regions?
For the latter I'm asking because when a task hits a taskwait construct, but all its descendent tasks are running in other threads (that can happen if the implicit tasks in those threads encountered
barrier region or if the implicit tasks exited), the taskwait will have to be suspended if the only new queued tasks were created by other implicit tasks, while the thread CPU time could be used to work on some new task in the mean time.
