1 #ifndef FWCore_Framework_ESSourceProductResolverBase_h 2 #define FWCore_Framework_ESSourceProductResolverBase_h 50 template <
typename ASYNC,
typename GUARD>
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 prefetchAsyncImplTemplate(ASYNC iAsync, GUARD iGuardFactory, edm::WaitingTaskHolder iTask, edm::eventsetup::EventSetupRecordImpl const &iRecord, edm::eventsetup::DataKey const &iKey, edm::ESParentContext const &iContext)
oneapi::tbb::task_group * group() const noexcept
void doneWaiting(std::exception_ptr iPtr)
Signals that the resource is now available and tasks should be spawned.
std::atomic< bool > m_prefetching
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 invalidateCache() override
bool needToPrefetch(edm::WaitingTaskHolder iTask)