diff --git a/FWCore/MessageLogger/src/JobReport.cc b/FWCore/MessageLogger/src/JobReport.cc index 78e5537d22303..c7dc1972c1c62 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); } } @@ -433,6 +431,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); } @@ -540,6 +539,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"; @@ -554,6 +554,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; @@ -571,6 +572,7 @@ namespace edm { return; impl_->printedReadBranches_ = true; if (impl_->ost_) { + std::lock_guard lock(write_mutex); std::ostream& ost = *(impl_->ost_); ost << "\n"; tinyxml2::XMLDocument doc;