diff options
Diffstat (limited to 'openmp/runtime/src/kmp_tasking.cpp')
| -rw-r--r-- | openmp/runtime/src/kmp_tasking.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/openmp/runtime/src/kmp_tasking.cpp b/openmp/runtime/src/kmp_tasking.cpp index 9028686bea1..7179d2c3149 100644 --- a/openmp/runtime/src/kmp_tasking.cpp +++ b/openmp/runtime/src/kmp_tasking.cpp @@ -16,6 +16,7 @@ #include "kmp_itt.h" #include "kmp_stats.h" #include "kmp_wait_release.h" +#include "kmp_taskdeps.h" #if OMPT_SUPPORT #include "ompt-specific.h" @@ -764,15 +765,14 @@ static void __kmp_task_finish(kmp_int32 gtid, kmp_task_t *task, #if OMP_40_ENABLED if (taskdata->td_taskgroup) KMP_ATOMIC_DEC(&taskdata->td_taskgroup->count); + __kmp_release_deps(gtid, taskdata); #if OMP_45_ENABLED - } - // if we found proxy tasks there could exist a dependency chain - // with the proxy task as origin - if (!(taskdata->td_flags.team_serial || taskdata->td_flags.tasking_ser) || - (task_team && task_team->tt.tt_found_proxy_tasks)) { -#endif + } else if (task_team && task_team->tt.tt_found_proxy_tasks) { + // if we found proxy tasks there could exist a dependency chain + // with the proxy task as origin __kmp_release_deps(gtid, taskdata); -#endif +#endif // OMP_45_ENABLED +#endif // OMP_40_ENABLED } // td_flags.executing must be marked as 0 after __kmp_release_deps has been |

