clang -fopenmp t1.c -o t1 && KMP_TASKING=1 ./t1
I've been playing with tskm_extra_barrier tasking mode and got an Assertion failure at kmp_tasking.cpp(3392): *unfinished_threads >= 0.
With gdb I see *unfinished_threads == -1. I think this happens because there is the assumption tt_unfinished_threads is the number of threads of the team when running execute_tasks. With extra_barrier tasking mode this is not respected because execute_tasks is run both in __kmp_tasking_barrier and __kmp_wait_template of the barrier.
```cpp
int main()
{
#pragma omp parallel num_threads(32)
{
#pragma omp task
{
}
#pragma omp taskwait
}
}
```
`clang -fopenmp t1.c -o t1 && KMP_TASKING=1 ./t1`
I've been playing with `tskm_extra_barrier` tasking mode and got an `Assertion failure at kmp_tasking.cpp(3392): *unfinished_threads >= 0.`
With gdb I see `*unfinished_threads == -1`. I think this happens because there is the assumption `tt_unfinished_threads` is the number of threads of the team when running `execute_tasks`. With extra_barrier tasking mode this is not respected because execute_tasks is run both in `__kmp_tasking_barrier` and `__kmp_wait_template` of the barrier.
clang -fopenmp t1.c -o t1 && KMP_TASKING=1 ./t1
I've been playing withtskm_extra_barrier
tasking mode and got anAssertion failure at kmp_tasking.cpp(3392): *unfinished_threads >= 0.
With gdb I see
*unfinished_threads == -1
. I think this happens because there is the assumptiontt_unfinished_threads
is the number of threads of the team when runningexecute_tasks
. With extra_barrier tasking mode this is not respected because execute_tasks is run both in__kmp_tasking_barrier
and__kmp_wait_template
of the barrier.