diff options
Diffstat (limited to 'qpid/cpp/src')
| -rw-r--r-- | qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp b/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp index 4ad68d9a3b..a69ab09001 100644 --- a/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp +++ b/qpid/cpp/src/qpid/linearstore/journal/EmptyFilePool.cpp @@ -173,10 +173,11 @@ efpDataSize_kib_t EmptyFilePool::dataSizeFromDirName_kib(const std::string& dirN // --- protected functions --- +// WARNING: this method needs to be called under the scope of emptyFileListMutex_ lock void EmptyFilePool::createEmptyFile() { std::string efpfn = getEfpFileName(); if (overwriteFileContents(efpfn)) { - pushEmptyFile(efpfn); + emptyFileList_.push_back(efpfn); } } @@ -207,16 +208,11 @@ bool EmptyFilePool::overwriteFileContents(const std::string& fqFileName) { std::string EmptyFilePool::popEmptyFile() { std::string emptyFileName; - bool isEmpty = false; - { - slock l(emptyFileListMutex_); - isEmpty = emptyFileList_.empty(); - } - if (isEmpty) { - createEmptyFile(); - } { slock l(emptyFileListMutex_); + if (emptyFileList_.empty()) { + createEmptyFile(); + } emptyFileName = emptyFileList_.front(); emptyFileList_.pop_front(); } |
