[OpenMP] Fix inconsistent task state if hot team is not used
This patch fixes the inconsistent task state when hot team is not used. When the primary thread executes `__kmp_join_call`, it calls `__kmp_free_team`, where worker threads will get destroyed if not using hot team. The destroy of worker threads also reset their task state. However, the primary thread's is not reset. When the next parallel region is encountered, in `__kmp_task_team_sync`, the task state of thread will be flipped. Since the state of primary thread is not reset, it is still 1, but all the worker threads will be 0, this leads to the inconsistent task state, causing those threads are using completely different task team. Fix #59190. Reviewed By: tlwilmar Differential Revision: https://reviews.llvm.org/D141979
Loading
Please sign in to comment