3535#include " implicitTaskOmpLogic.hpp"
3636#include " parallelOmpLogic.hpp"
3737
38- int opdi::ParallelOmpLogic::skipParallelHandling = 0 ;
38+ int opdi::ParallelOmpLogic::skipParallelRegion = 0 ;
3939
4040void opdi::ParallelOmpLogic::reverseFunc (void * parallelDataPtr) {
4141
@@ -47,7 +47,7 @@ void opdi::ParallelOmpLogic::reverseFunc(void* parallelDataPtr) {
4747 }
4848 #endif
4949
50- ++ ParallelOmpLogic::skipParallelHandling ;
50+ ParallelOmpLogic::internalBeginSkippedParallelRegion () ;
5151
5252 #pragma omp parallel num_threads(parallelData->actualSizeOfTeam)
5353 {
@@ -94,7 +94,7 @@ void opdi::ParallelOmpLogic::reverseFunc(void* parallelDataPtr) {
9494 #endif
9595 }
9696
97- -- ParallelOmpLogic::skipParallelHandling ;
97+ ParallelOmpLogic::internalEndSkippedParallelRegion () ;
9898
9999 #if OPDI_OMP_LOGIC_INSTRUMENT
100100 for (auto & instrument : ompLogicInstruments) {
@@ -107,7 +107,7 @@ void opdi::ParallelOmpLogic::deleteFunc(void* parallelDataPtr) {
107107
108108 ParallelData* parallelData = static_cast <ParallelData*>(parallelDataPtr);
109109
110- ++ ParallelOmpLogic::skipParallelHandling ;
110+ ParallelOmpLogic::internalBeginSkippedParallelRegion () ;
111111
112112 // this triggers possibly pending implicit task end events
113113 #pragma omp parallel num_threads(parallelData->actualSizeOfTeam)
@@ -134,7 +134,7 @@ void opdi::ParallelOmpLogic::deleteFunc(void* parallelDataPtr) {
134134 delete implicitTaskData;
135135 }
136136
137- -- ParallelOmpLogic::skipParallelHandling ;
137+ ParallelOmpLogic::internalEndSkippedParallelRegion () ;
138138
139139 tool->freePosition (parallelData->encounteringTaskTapePosition );
140140
@@ -169,7 +169,7 @@ void opdi::ParallelOmpLogic::internalSetAdjointAccessMode(ImplicitTaskData* impl
169169
170170void * opdi::ParallelOmpLogic::onParallelBegin (void * encounteringTaskDataPtr, int maximumSizeOfTeam) {
171171
172- if (tool->getThreadLocalTape () != nullptr && ParallelOmpLogic::skipParallelHandling == 0 ) {
172+ if (tool->getThreadLocalTape () != nullptr && ParallelOmpLogic::skipParallelRegion == 0 ) {
173173
174174 ImplicitTaskData* encounteringTaskData = static_cast <ImplicitTaskData*>(encounteringTaskDataPtr);
175175
@@ -274,3 +274,18 @@ opdi::LogicInterface::AdjointAccessMode opdi::ParallelOmpLogic::getAdjointAccess
274274 }
275275}
276276
277+ void opdi::ParallelOmpLogic::internalBeginSkippedParallelRegion () {
278+ ++ParallelOmpLogic::skipParallelRegion;
279+ }
280+
281+ void opdi::ParallelOmpLogic::internalEndSkippedParallelRegion () {
282+ --ParallelOmpLogic::skipParallelRegion;
283+ }
284+
285+ void opdi::ParallelOmpLogic::beginSkippedParallelRegion () {
286+ ParallelOmpLogic::internalBeginSkippedParallelRegion ();
287+ }
288+
289+ void opdi::ParallelOmpLogic::endSkippedParallelRegion () {
290+ ParallelOmpLogic::internalEndSkippedParallelRegion ();
291+ }
0 commit comments