diff --git a/FWCore/MessageLogger/src/JobReport.cc b/FWCore/MessageLogger/src/JobReport.cc index 742372996240d..f3c416c9cca3a 100644 --- a/FWCore/MessageLogger/src/JobReport.cc +++ b/FWCore/MessageLogger/src/JobReport.cc @@ -376,13 +376,11 @@ namespace edm { void JobReport::inputFileClosed(InputType inputType, JobReport::Token fileToken) { JobReport::InputFile& f = impl_->getInputFileForToken(inputType, fileToken); f.fileHasBeenClosed = true; + std::lock_guard lock(write_mutex); if (inputType == InputType::Primary) { impl_->writeInputFile(f); } else { - { - std::lock_guard lock(write_mutex); - impl_->writeInputFile(f); - } + impl_->writeInputFile(f); } } @@ -434,6 +432,7 @@ namespace edm { void JobReport::outputFileClosed(JobReport::Token fileToken) { JobReport::OutputFile& f = impl_->getOutputFileForToken(fileToken); f.fileHasBeenClosed = true; + std::lock_guard lock(write_mutex); impl_->writeOutputFile(f); } @@ -541,6 +540,7 @@ namespace edm { void JobReport::reportMemoryInfo(std::vector const& memoryData) { if (impl_->ost_) { + std::lock_guard lock(write_mutex); std::ostream& msg = *(impl_->ost_); msg << "\n"; @@ -555,6 +555,7 @@ namespace edm { void JobReport::reportMessageInfo(std::map const& messageData) { if (impl_->ost_) { + std::lock_guard lock(write_mutex); std::ostream& msg = *(impl_->ost_); msg << "\n"; typedef std::map::const_iterator const_iterator; @@ -572,6 +573,7 @@ namespace edm { if (not impl_->printedReadBranches_.compare_exchange_strong(expected, true)) return; if (impl_->ost_) { + std::lock_guard lock(write_mutex); std::ostream& ost = *(impl_->ost_); ost << "\n"; tinyxml2::XMLDocument doc;