diff --git a/source/adios2/engine/bp5/BP5Engine.h b/source/adios2/engine/bp5/BP5Engine.h index 7841caf5cf..6bc187675d 100644 --- a/source/adios2/engine/bp5/BP5Engine.h +++ b/source/adios2/engine/bp5/BP5Engine.h @@ -110,7 +110,7 @@ class BP5Engine MACRO(NodeLocal, Bool, bool, false) \ MACRO(verbose, Int, int, 0) \ MACRO(CollectiveMetadata, Bool, bool, true) \ - MACRO(NumAggregators, UInt, unsigned int, 999999) \ + MACRO(NumAggregators, UInt, unsigned int, 0) \ MACRO(NumSubFiles, UInt, unsigned int, 999999) \ MACRO(FileSystemPageSize, UInt, unsigned int, 4096) \ MACRO(AggregationType, AggregationType, int, \ diff --git a/source/adios2/toolkit/aggregator/mpi/MPIShmChain.cpp b/source/adios2/toolkit/aggregator/mpi/MPIShmChain.cpp index 6f61395ad5..7fe175e1f4 100644 --- a/source/adios2/toolkit/aggregator/mpi/MPIShmChain.cpp +++ b/source/adios2/toolkit/aggregator/mpi/MPIShmChain.cpp @@ -308,6 +308,10 @@ MPIShmChain::ShmDataBuffer *MPIShmChain::LockProducerBuffer() void MPIShmChain::UnlockProducerBuffer() { + m_Shm->lockSegment.lock(); + ++m_Shm->NumBuffersFull; + m_Shm->lockSegment.unlock(); + if (m_Shm->producerBuffer == LastBufferUsed::A) { m_Shm->lockA.unlock(); @@ -316,7 +320,6 @@ void MPIShmChain::UnlockProducerBuffer() { m_Shm->lockB.unlock(); } - ++m_Shm->NumBuffersFull; } MPIShmChain::ShmDataBuffer *MPIShmChain::LockConsumerBuffer() @@ -365,6 +368,10 @@ MPIShmChain::ShmDataBuffer *MPIShmChain::LockConsumerBuffer() void MPIShmChain::UnlockConsumerBuffer() { + m_Shm->lockSegment.lock(); + --m_Shm->NumBuffersFull; + m_Shm->lockSegment.unlock(); + if (m_Shm->consumerBuffer == LastBufferUsed::A) { m_Shm->lockA.unlock(); @@ -373,7 +380,6 @@ void MPIShmChain::UnlockConsumerBuffer() { m_Shm->lockB.unlock(); } - --m_Shm->NumBuffersFull; } } // end namespace aggregator