1 #ifndef FWCore_Framework_ESSourceProductResolverBase_h 2 #define FWCore_Framework_ESSourceProductResolverBase_h 50 template <
typename ASYNC,
typename GUARD>
57 auto group = iTask.group();
59 iAsync(*
group, [
this, iGuardFactory, &iRecord, iKey, iContext]() {
71 template <
typename GUARD>
76 [[maybe_unused]]
auto guard = iGuardFactory();
void doPrefetchAndSignals(edm::eventsetup::EventSetupRecordImpl const &, edm::eventsetup::DataKey const &iKey, edm::ESParentContext const &)
void invalidateTransientCache() override
void reset()
Resets access to the resource so that added tasks will wait.
void doneWaiting(std::exception_ptr iPtr)
Signals that the resource is now available and tasks should be spawned.
std::atomic< bool > m_prefetching
bool needToPrefetch(edm::WaitingTaskHolder iTask) noexcept
virtual void prefetch(edm::eventsetup::DataKey const &iKey, EventSetupRecordDetails)=0
void guardPrefetch(GUARD iGuardFactory, edm::eventsetup::EventSetupRecordImpl const &iES, edm::eventsetup::DataKey const &iKey, edm::ESParentContext const &iContext)
edm::WaitingTaskList m_waitingList
ESSourceProductResolverBase()
void prefetchAsyncImplTemplate(ASYNC iAsync, GUARD iGuardFactory, edm::WaitingTaskHolder iTask, edm::eventsetup::EventSetupRecordImpl const &iRecord, edm::eventsetup::DataKey const &iKey, edm::ESParentContext const &iContext) noexcept
void invalidateCache() override