forked from OSchip/llvm-project
Fixed memory leak mistakenly introduced by https://reviews.llvm.org/D23115
Differential Revision: http://reviews.llvm.org/D25510 llvm-svn: 284747
This commit is contained in:
parent
0051efcf97
commit
2e68768d1e
|
|
@ -579,9 +579,11 @@ __kmp_free_task_and_ancestors( kmp_int32 gtid, kmp_taskdata_t * taskdata, kmp_in
|
|||
#if OMP_45_ENABLED
|
||||
// Proxy tasks must always be allowed to free their parents
|
||||
// because they can be run in background even in serial mode.
|
||||
kmp_int32 task_serial = taskdata->td_flags.task_serial && !taskdata->td_flags.proxy;
|
||||
kmp_int32 team_serial = ( taskdata->td_flags.team_serial ||
|
||||
taskdata->td_flags.tasking_ser ) && !taskdata->td_flags.proxy;
|
||||
#else
|
||||
kmp_int32 task_serial = taskdata->td_flags.task_serial;
|
||||
kmp_int32 team_serial = taskdata->td_flags.team_serial ||
|
||||
taskdata->td_flags.tasking_ser;
|
||||
#endif
|
||||
KMP_DEBUG_ASSERT( taskdata -> td_flags.tasktype == TASK_EXPLICIT );
|
||||
|
||||
|
|
@ -603,7 +605,7 @@ __kmp_free_task_and_ancestors( kmp_int32 gtid, kmp_taskdata_t * taskdata, kmp_in
|
|||
|
||||
// Stop checking ancestors at implicit task
|
||||
// instead of walking up ancestor tree to avoid premature deallocation of ancestors.
|
||||
if ( task_serial || taskdata -> td_flags.tasktype == TASK_IMPLICIT )
|
||||
if ( team_serial || taskdata -> td_flags.tasktype == TASK_IMPLICIT )
|
||||
return;
|
||||
|
||||
// Predecrement simulated by "- 1" calculation
|
||||
|
|
|
|||
Loading…
Reference in New Issue