CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
LuminosityBlockProcessingStatus.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: FWCore/Framework
4 // Class : LuminosityBlockProcessingStatus
5 //
6 // Implementation:
7 // [Notes on implementation]
8 //
9 // Original Author: Chris Jones
10 // Created: Thu, 11 Jan 2018 16:41:46 GMT
11 //
12 
13 // system include files
14 
15 // user include files
18 
19 namespace edm {
21  endIOVWaitingTasks_.doneWaiting(std::exception_ptr{});
22  for (auto& iter : eventSetupImpls_) {
23  iter.reset();
24  }
26  run_.reset();
27  }
28 
30  if (2 != endTimeSetStatus_) {
31  //not already set
32  char expected = 0;
33  if (endTimeSetStatus_.compare_exchange_strong(expected, 1)) {
34  lumiPrincipal_->setEndTime(endTime_);
35  endTimeSetStatus_.store(2);
36  } else {
37  //wait until time is set
38  while (2 != endTimeSetStatus_.load()) {
39  }
40  }
41  }
42  }
43 } // namespace edm
void doneWaiting(std::exception_ptr iPtr)
Signals that the resource is now available and tasks should be spawned.
std::shared_ptr< LuminosityBlockPrincipal > lumiPrincipal_
std::vector< std::shared_ptr< const EventSetupImpl > > eventSetupImpls_