1 #ifndef FWCore_Framework_ESSourceDataProxyBase_h
2 #define FWCore_Framework_ESSourceDataProxyBase_h
34 namespace edm::eventsetup {
49 template <
typename ASYNC,
typename GUARD>
58 iAsync(*
group, [
this, iGuardFactory, &iRecord, iKey, iContext]() {
70 template <
typename GUARD>
75 [[maybe_unused]]
auto guard = iGuardFactory();
void prefetchAsyncImplTemplate(ASYNC iAsync, GUARD iGuardFactory, edm::WaitingTaskHolder iTask, edm::eventsetup::EventSetupRecordImpl const &iRecord, edm::eventsetup::DataKey const &iKey, edm::ESParentContext const &iContext)
void invalidateCache() override
std::atomic< bool > m_prefetching
void invalidateTransientCache() override
void reset()
Resets access to the resource so that added tasks will wait.
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.
void doPrefetchAndSignals(edm::eventsetup::EventSetupRecordImpl const &, edm::eventsetup::DataKey const &iKey, edm::ESParentContext const &)
bool needToPrefetch(edm::WaitingTaskHolder iTask)
void guardPrefetch(GUARD iGuardFactory, edm::eventsetup::EventSetupRecordImpl const &iES, edm::eventsetup::DataKey const &iKey, edm::ESParentContext const &iContext)
edm::WaitingTaskList m_waitingList
virtual void prefetch(edm::eventsetup::DataKey const &iKey, EventSetupRecordDetails)=0