Skip to content

Commit 341141a

Browse files
committed
Transport adjoint access mode out of passive parallel regions.
1 parent 9a4c116 commit 341141a

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

include/opdi/logic/omp/parallelOmpLogic.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,14 +209,15 @@ void opdi::ParallelOmpLogic::onParallelEnd(void* dataPtr) {
209209
tool->pushExternalFunction(parallelData->parentTape, handle);
210210

211211
// do not delete data, it is deleted with the handle
212+
}
212213

213-
// if needed, transport adjoint access mode of thread 0 to parent task
214-
ImplicitTaskOmpLogic::Data* taskData = reinterpret_cast<ImplicitTaskOmpLogic::Data*>(parallelData->childTasks[0]);
214+
// if needed, transport adjoint access mode of thread 0 to parent task
215+
ImplicitTaskOmpLogic::Data* taskData = reinterpret_cast<ImplicitTaskOmpLogic::Data*>(parallelData->childTasks[0]);
215216

216-
if (internalGetAdjointAccessMode(parallelData->parentTask) != taskData->adjointAccessModes.back())
217-
this->internalSetAdjointAccessMode(parallelData->parentTask, taskData->adjointAccessModes.back());
217+
if (internalGetAdjointAccessMode(parallelData->parentTask) != taskData->adjointAccessModes.back())
218+
this->internalSetAdjointAccessMode(parallelData->parentTask, taskData->adjointAccessModes.back());
218219

219-
} else {
220+
if (!parallelData->activeParallelRegion) {
220221
deleteFunc(parallelData);
221222
}
222223
}

0 commit comments

Comments
 (0)