CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
edm::NoProcessProductResolver Class Reference

#include <ProductResolvers.h>

Inheritance diagram for edm::NoProcessProductResolver:
edm::ProductResolverBase

Public Types

typedef ProducedProductResolver::ProductStatus ProductStatus
 

Public Member Functions

virtual void connectTo (ProductResolverBase const &iOther, Principal const *) override final
 
bool dataValidFromResolver (unsigned int iProcessingIndex, Principal const &principal, bool iSkipCurrentProcess) const
 
 NoProcessProductResolver (std::vector< ProductResolverIndex > const &matchingHolders, std::vector< bool > const &ambiguous)
 
void prefetchFailed (unsigned int iProcessingIndex, Principal const &principal, bool iSkipCurrentProcess, std::exception_ptr iExceptPtr) const
 
void tryPrefetchResolverAsync (unsigned int iProcessingIndex, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc, ServiceToken token) const
 
- Public Member Functions inherited from edm::ProductResolverBase
BranchDescription const & branchDescription () const
 
std::string const & moduleLabel () const
 
ProductResolverBaseoperator= (ProductResolverBase const &)=delete
 
void prefetchAsync (WaitingTask *waitTask, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
std::string const & processName () const
 
ProductID const & productID () const
 
std::string const & productInstanceName () const
 
ProductProvenance const * productProvenancePtr () const
 
bool productResolved () const
 
 ProductResolverBase ()
 
 ProductResolverBase (ProductResolverBase const &)=delete
 
TypeID productType () const
 
bool productUnavailable () const
 
bool productWasDeleted () const
 
bool productWasFetchedAndIsValid (bool iSkipCurrentProcess) const
 
Provenance const * provenance () const
 
bool provenanceAvailable () const
 
void putOrMergeProduct (std::unique_ptr< WrapperBase > edp) const
 
void putProduct (std::unique_ptr< WrapperBase > edp) const
 
void resetBranchDescription (std::shared_ptr< BranchDescription const > bd)
 
virtual void resetFailedFromThisProcess ()
 
void resetProductData ()
 
std::string const & resolvedModuleLabel () const
 
Resolution resolveProduct (Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
void retrieveAndMerge (Principal const &principal) const
 
void setProcessHistory (ProcessHistory const &ph)
 
void setProvenance (ProductProvenanceRetriever const *provRetriever, ProcessHistory const &ph, ProductID const &pid)
 
virtual void setupUnscheduled (UnscheduledConfigurator const &)
 
bool singleProduct () const
 
StableProvenance const * stableProvenance () const
 
void unsafe_deleteProduct () const
 
bool unscheduledWasNotRun () const
 
void write (std::ostream &os) const
 
virtual ~ProductResolverBase ()
 

Private Member Functions

virtual BranchDescription const & branchDescription_ () const override
 
virtual void prefetchAsync_ (WaitingTask *waitTask, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const override
 
virtual ProductProvenance const * productProvenancePtr_ () const override
 
virtual bool productResolved_ () const override final
 
virtual bool productUnavailable_ () const override
 
virtual bool productWasDeleted_ () const override
 
virtual bool productWasFetchedAndIsValid_ (bool iSkipCurrentProcess) const override
 
virtual Provenance const * provenance_ () const override
 
virtual void putOrMergeProduct_ (std::unique_ptr< WrapperBase > prod) const override final
 
virtual void putProduct_ (std::unique_ptr< WrapperBase > edp) const override
 
virtual void resetBranchDescription_ (std::shared_ptr< BranchDescription const > bd) override
 
virtual void resetProductData_ (bool deleteEarly) override
 
virtual std::string const & resolvedModuleLabel_ () const override
 
virtual Resolution resolveProduct_ (Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const override
 
void setCache (bool skipCurrentProcess, ProductResolverIndex index, std::exception_ptr exceptionPtr) const
 
virtual void setProcessHistory_ (ProcessHistory const &ph) override
 
virtual void setProvenance_ (ProductProvenanceRetriever const *provRetriever, ProcessHistory const &ph, ProductID const &pid) override
 
virtual bool singleProduct_ () const override
 
Resolution tryResolver (unsigned int index, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
virtual bool unscheduledWasNotRun_ () const override
 
unsigned int unsetIndexValue () const
 

Private Attributes

std::vector< bool > ambiguous_
 
std::atomic< unsigned int > lastCheckIndex_
 
std::atomic< unsigned int > lastSkipCurrentCheckIndex_
 
std::vector< ProductResolverIndexmatchingHolders_
 
std::atomic< bool > prefetchRequested_
 
std::atomic< bool > skippingPrefetchRequested_
 
WaitingTaskList skippingWaitingTasks_
 
WaitingTaskList waitingTasks_
 

Detailed Description

Definition at line 303 of file ProductResolvers.h.

Member Typedef Documentation

Definition at line 305 of file ProductResolvers.h.

Constructor & Destructor Documentation

edm::NoProcessProductResolver::NoProcessProductResolver ( std::vector< ProductResolverIndex > const &  matchingHolders,
std::vector< bool > const &  ambiguous 
)

Definition at line 634 of file ProductResolvers.cc.

References ambiguous_, and matchingHolders_.

Referenced by edm::ParentProcessProductResolver::throwNullRealProduct().

635  :
636  matchingHolders_(matchingHolders),
637  ambiguous_(ambiguous),
640  prefetchRequested_(false),
642  assert(ambiguous_.size() == matchingHolders_.size());
643  }
static unsigned int kUnsetOffset
std::atomic< unsigned int > lastSkipCurrentCheckIndex_
std::atomic< bool > prefetchRequested_
std::atomic< unsigned int > lastCheckIndex_
std::atomic< bool > skippingPrefetchRequested_
std::vector< bool > ambiguous_
std::vector< ProductResolverIndex > matchingHolders_

Member Function Documentation

BranchDescription const & edm::NoProcessProductResolver::branchDescription_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 935 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

935  {
937  << "NoProcessProductResolver::branchDescription_() not implemented and should never be called.\n"
938  << "Contact a Framework developer\n";
939  }
void edm::NoProcessProductResolver::connectTo ( ProductResolverBase const &  iOther,
Principal const *   
)
finaloverridevirtual

Implements edm::ProductResolverBase.

Definition at line 953 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

953  {
955  << "NoProcessProductResolver::connectTo() not implemented and should never be called.\n"
956  << "Contact a Framework developer\n";
957 
958  }
bool edm::NoProcessProductResolver::dataValidFromResolver ( unsigned int  iProcessingIndex,
Principal const &  principal,
bool  iSkipCurrentProcess 
) const

Definition at line 796 of file ProductResolvers.cc.

References edm::Principal::getProductResolverByIndex(), gen::k, edm::Principal::lookupProcessOrder(), matchingHolders_, edm::ProductResolverBase::productWasFetchedAndIsValid(), and setCache().

798  {
799  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
800  auto k = lookupProcessOrder[iProcessingIndex];
801  ProductResolverBase const* productResolver = principal.getProductResolverByIndex(matchingHolders_[k]);
802 
803  if(productResolver->productWasFetchedAndIsValid(iSkipCurrentProcess)) {
804 
805  setCache(iSkipCurrentProcess, k, nullptr);
806  return true;
807  }
808  return false;
809  }
void setCache(bool skipCurrentProcess, ProductResolverIndex index, std::exception_ptr exceptionPtr) const
def principal(options)
int k[5][pyjets_maxn]
std::vector< ProductResolverIndex > matchingHolders_
void edm::NoProcessProductResolver::prefetchAsync_ ( WaitingTask waitTask,
Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 701 of file ProductResolvers.cc.

References edm::WaitingTaskList::add(), edm::ServiceRegistry::instance(), prefetchRequested_, skippingPrefetchRequested_, skippingWaitingTasks_, tryPrefetchResolverAsync(), and waitingTasks_.

705  {
706  if(not skipCurrentProcess) {
707  waitingTasks_.add(waitTask);
708 
709  bool expected = false;
710  if( prefetchRequested_.compare_exchange_strong(expected,true)) {
711  //we are the first thread to request
712  tryPrefetchResolverAsync(0, principal, skipCurrentProcess, sra, mcc, ServiceRegistry::instance().presentToken());
713  }
714  } else {
715  skippingWaitingTasks_.add(waitTask);
716  bool expected = false;
717  if( skippingPrefetchRequested_.compare_exchange_strong(expected,true)) {
718  //we are the first thread to request
719  tryPrefetchResolverAsync(0, principal, skipCurrentProcess, sra, mcc, ServiceRegistry::instance().presentToken());
720  }
721  }
722  }
void add(WaitingTask *)
Adds task to the waiting list.
def principal(options)
static ServiceRegistry & instance()
std::atomic< bool > prefetchRequested_
std::atomic< bool > skippingPrefetchRequested_
void tryPrefetchResolverAsync(unsigned int iProcessingIndex, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc, ServiceToken token) const
void edm::NoProcessProductResolver::prefetchFailed ( unsigned int  iProcessingIndex,
Principal const &  principal,
bool  iSkipCurrentProcess,
std::exception_ptr  iExceptPtr 
) const

Definition at line 784 of file ProductResolvers.cc.

References gen::k, edm::Principal::lookupProcessOrder(), and setCache().

787  {
788  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
789  auto k = lookupProcessOrder[iProcessingIndex];
790 
791  setCache(iSkipCurrentProcess, k, iExceptPtr);
792  }
void setCache(bool skipCurrentProcess, ProductResolverIndex index, std::exception_ptr exceptionPtr) const
def principal(options)
int k[5][pyjets_maxn]
ProductProvenance const * edm::NoProcessProductResolver::productProvenancePtr_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 873 of file ProductResolvers.cc.

873  {
874  return nullptr;
875  }
bool edm::NoProcessProductResolver::productResolved_ ( ) const
finaloverrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 905 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

905  {
907  << "NoProcessProductResolver::productResolved_() not implemented and should never be called.\n"
908  << "Contact a Framework developer\n";
909  }
bool edm::NoProcessProductResolver::productUnavailable_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 899 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

899  {
901  << "NoProcessProductResolver::productUnavailable_() not implemented and should never be called.\n"
902  << "Contact a Framework developer\n";
903  }
bool edm::NoProcessProductResolver::productWasDeleted_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 911 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

911  {
913  << "NoProcessProductResolver::productWasDeleted_() not implemented and should never be called.\n"
914  << "Contact a Framework developer\n";
915  }
bool edm::NoProcessProductResolver::productWasFetchedAndIsValid_ ( bool  iSkipCurrentProcess) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 917 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

917  {
919  << "NoProcessProductResolver::productWasFetchedAndIsValid_() not implemented and should never be called.\n"
920  << "Contact a Framework developer\n";
921  }
Provenance const * edm::NoProcessProductResolver::provenance_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 947 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

947  {
949  << "NoProcessProductResolver::provenance_() not implemented and should never be called.\n"
950  << "Contact a Framework developer\n";
951  }
void edm::NoProcessProductResolver::putOrMergeProduct_ ( std::unique_ptr< WrapperBase prod) const
finaloverrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 929 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

929  {
931  << "NoProcessProductResolver::putOrMergeProduct_(std::unique_ptr<WrapperBase> edp) not implemented and should never be called.\n"
932  << "Contact a Framework developer\n";
933  }
void edm::NoProcessProductResolver::putProduct_ ( std::unique_ptr< WrapperBase edp) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 923 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

923  {
925  << "NoProcessProductResolver::putProduct_() not implemented and should never be called.\n"
926  << "Contact a Framework developer\n";
927  }
void edm::NoProcessProductResolver::resetBranchDescription_ ( std::shared_ptr< BranchDescription const >  bd)
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 941 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

941  {
943  << "NoProcessProductResolver::resetBranchDescription_() not implemented and should never be called.\n"
944  << "Contact a Framework developer\n";
945  }
void edm::NoProcessProductResolver::resetProductData_ ( bool  deleteEarly)
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 879 of file ProductResolvers.cc.

References lastCheckIndex_, lastSkipCurrentCheckIndex_, prefetchRequested_, edm::WaitingTaskList::reset(), skippingPrefetchRequested_, skippingWaitingTasks_, unsetIndexValue(), and waitingTasks_.

879  {
880  const auto resetValue = unsetIndexValue();
881  lastCheckIndex_ = resetValue;
882  lastSkipCurrentCheckIndex_ = resetValue;
883  prefetchRequested_ = false;
887  }
unsigned int unsetIndexValue() const
void reset()
Resets access to the resource so that added tasks will wait.
std::atomic< unsigned int > lastSkipCurrentCheckIndex_
std::atomic< bool > prefetchRequested_
std::atomic< unsigned int > lastCheckIndex_
std::atomic< bool > skippingPrefetchRequested_
virtual std::string const& edm::NoProcessProductResolver::resolvedModuleLabel_ ( ) const
inlineoverrideprivatevirtual
ProductResolverBase::Resolution edm::NoProcessProductResolver::resolveProduct_ ( Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 657 of file ProductResolvers.cc.

References ambiguous_, gen::k, kAmbiguousOffset, kMissingOffset, kUnsetOffset, lastCheckIndex_, lastSkipCurrentCheckIndex_, edm::Principal::lookupProcessOrder(), edm::ProductResolverBase::Resolution::makeAmbiguous(), matchingHolders_, edm::ProductResolverIndexInvalid, ctppsDiamondLocalTracks_cfi::resolution, Resolution, and tryResolver().

660  {
661  //See if we've already cached which Resolver we should call or if
662  // we know it is ambiguous
663  const unsigned int choiceSize = ambiguous_.size();
664  {
665  unsigned int checkCacheIndex = skipCurrentProcess? lastSkipCurrentCheckIndex_.load() : lastCheckIndex_.load();
666  if( checkCacheIndex != choiceSize +kUnsetOffset) {
667  if (checkCacheIndex == choiceSize+kAmbiguousOffset) {
669  } else if(checkCacheIndex == choiceSize+kMissingOffset) {
670  return Resolution(nullptr);
671  }
672  return tryResolver(checkCacheIndex, principal, skipCurrentProcess,
673  sra,mcc);
674  }
675  }
676 
677  std::atomic<unsigned int>& updateCacheIndex = skipCurrentProcess? lastSkipCurrentCheckIndex_ : lastCheckIndex_;
678 
679  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
680  for(unsigned int k : lookupProcessOrder) {
681  assert(k < ambiguous_.size());
682  if(k == 0) break; // Done
683  if(ambiguous_[k]) {
684  updateCacheIndex = choiceSize + kAmbiguousOffset;
686  }
688  auto resolution = tryResolver(k,principal, skipCurrentProcess, sra,mcc);
689  if(resolution.data() != nullptr) {
690  updateCacheIndex = k;
691  return resolution;
692  }
693  }
694  }
695 
696  updateCacheIndex = choiceSize + kMissingOffset;
697  return Resolution(nullptr);
698  }
Resolution tryResolver(unsigned int index, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
static unsigned int kUnsetOffset
static unsigned int kMissingOffset
def principal(options)
std::atomic< unsigned int > lastSkipCurrentCheckIndex_
std::atomic< unsigned int > lastCheckIndex_
int k[5][pyjets_maxn]
std::vector< bool > ambiguous_
static unsigned int kAmbiguousOffset
std::vector< ProductResolverIndex > matchingHolders_
void edm::NoProcessProductResolver::setCache ( bool  skipCurrentProcess,
ProductResolverIndex  index,
std::exception_ptr  exceptionPtr 
) const
private

Definition at line 724 of file ProductResolvers.cc.

References edm::WaitingTaskList::doneWaiting(), cmsIgProf_Analysis::execute(), lastCheckIndex_, lastSkipCurrentCheckIndex_, skippingWaitingTasks_, and waitingTasks_.

Referenced by dataValidFromResolver(), prefetchFailed(), and tryPrefetchResolverAsync().

726  {
727  if( not iSkipCurrentProcess) {
728  lastCheckIndex_ = iIndex;
729  waitingTasks_.doneWaiting(iExceptPtr);
730  } else {
733  }
734  }
void doneWaiting(std::exception_ptr iPtr)
Signals that the resource is now available and tasks should be spawned.
std::atomic< unsigned int > lastSkipCurrentCheckIndex_
std::atomic< unsigned int > lastCheckIndex_
void edm::NoProcessProductResolver::setProcessHistory_ ( ProcessHistory const &  ph)
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 870 of file ProductResolvers.cc.

870  {
871  }
void edm::NoProcessProductResolver::setProvenance_ ( ProductProvenanceRetriever const *  provRetriever,
ProcessHistory const &  ph,
ProductID const &  pid 
)
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 867 of file ProductResolvers.cc.

867  {
868  }
bool edm::NoProcessProductResolver::singleProduct_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 889 of file ProductResolvers.cc.

889  {
890  return false;
891  }
void edm::NoProcessProductResolver::tryPrefetchResolverAsync ( unsigned int  iProcessingIndex,
Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc,
ServiceToken  token 
) const

Definition at line 813 of file ProductResolvers.cc.

References ambiguous_, edm::Principal::getProductResolverByIndex(), diffTreeTool::index, gen::k, kAmbiguousOffset, kMissingOffset, edm::Principal::lookupProcessOrder(), matchingHolders_, edm::ProductResolverBase::prefetchAsync(), edm::ProductResolverIndexInvalid, and setCache().

Referenced by prefetchAsync_().

818  {
819  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
820  auto index = iProcessingIndex;
821 
822  const unsigned int choiceSize = ambiguous_.size();
823  unsigned int newCacheIndex = choiceSize + kMissingOffset;
824  while(index < lookupProcessOrder.size()) {
825  auto k = lookupProcessOrder[index];
826  if(k==0) {
827  break;
828  }
829  assert(k < ambiguous_.size());
830  if(ambiguous_[k]) {
831  newCacheIndex = choiceSize + kAmbiguousOffset;
832  break;
833  }
835  //make new task
836 
837  auto task = new (tbb::task::allocate_root()) TryNextResolverWaitingTask(
838  this,
839  index,
840  &principal,
841  sra,
842  mcc,
843  skipCurrentProcess,
844  token
845  );
846  task->increment_ref_count();
847  ProductResolverBase const* productResolver = principal.getProductResolverByIndex(matchingHolders_[k]);
848 
849  //Make sure the Services are available on this thread
850  ServiceRegistry::Operate guard(token);
851 
852  productResolver->prefetchAsync(task,
853  principal,
854  skipCurrentProcess,
855  sra, mcc);
856  if(0 == task->decrement_ref_count()) {
857  tbb::task::spawn(*task);
858  }
859  return;
860  }
861  ++index;
862  }
863  //data product unavailable
864  setCache(skipCurrentProcess, newCacheIndex, nullptr);
865  }
void setCache(bool skipCurrentProcess, ProductResolverIndex index, std::exception_ptr exceptionPtr) const
static unsigned int kMissingOffset
def principal(options)
int k[5][pyjets_maxn]
std::vector< bool > ambiguous_
static unsigned int kAmbiguousOffset
std::vector< ProductResolverIndex > matchingHolders_
ProductResolverBase::Resolution edm::NoProcessProductResolver::tryResolver ( unsigned int  index,
Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
private

Definition at line 646 of file ProductResolvers.cc.

References edm::Principal::getProductResolverByIndex(), matchingHolders_, and edm::ProductResolverBase::resolveProduct().

Referenced by resolveProduct_().

650  {
651  ProductResolverBase const* productResolver = principal.getProductResolverByIndex(matchingHolders_[index]);
652  return productResolver->resolveProduct(principal, skipCurrentProcess, sra, mcc);
653  }
def principal(options)
std::vector< ProductResolverIndex > matchingHolders_
bool edm::NoProcessProductResolver::unscheduledWasNotRun_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 893 of file ProductResolvers.cc.

References Exception, and edm::errors::LogicError.

893  {
895  << "NoProcessProductResolver::unscheduledWasNotRun_() not implemented and should never be called.\n"
896  << "Contact a Framework developer\n";
897  }
unsigned int edm::NoProcessProductResolver::unsetIndexValue ( ) const
inlineprivate

Definition at line 877 of file ProductResolvers.cc.

References ambiguous_, and kUnsetOffset.

Referenced by resetProductData_().

877 { return ambiguous_.size()+kUnsetOffset; }
static unsigned int kUnsetOffset
std::vector< bool > ambiguous_

Member Data Documentation

std::vector<bool> edm::NoProcessProductResolver::ambiguous_
private
std::atomic<unsigned int> edm::NoProcessProductResolver::lastCheckIndex_
mutableprivate

Definition at line 368 of file ProductResolvers.h.

Referenced by resetProductData_(), resolveProduct_(), and setCache().

std::atomic<unsigned int> edm::NoProcessProductResolver::lastSkipCurrentCheckIndex_
mutableprivate

Definition at line 369 of file ProductResolvers.h.

Referenced by resetProductData_(), resolveProduct_(), and setCache().

std::vector<ProductResolverIndex> edm::NoProcessProductResolver::matchingHolders_
private
std::atomic<bool> edm::NoProcessProductResolver::prefetchRequested_
mutableprivate

Definition at line 370 of file ProductResolvers.h.

Referenced by prefetchAsync_(), and resetProductData_().

std::atomic<bool> edm::NoProcessProductResolver::skippingPrefetchRequested_
mutableprivate

Definition at line 371 of file ProductResolvers.h.

Referenced by prefetchAsync_(), and resetProductData_().

WaitingTaskList edm::NoProcessProductResolver::skippingWaitingTasks_
mutableprivate

Definition at line 367 of file ProductResolvers.h.

Referenced by prefetchAsync_(), resetProductData_(), and setCache().

WaitingTaskList edm::NoProcessProductResolver::waitingTasks_
mutableprivate

Definition at line 366 of file ProductResolvers.h.

Referenced by prefetchAsync_(), resetProductData_(), and setCache().