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

void connectTo (ProductResolverBase const &iOther, Principal const *) final
 
bool dataValidFromResolver (unsigned int iProcessingIndex, Principal const &principal, bool iSkipCurrentProcess) const
 
 NoProcessProductResolver (std::vector< ProductResolverIndex > const &matchingHolders, std::vector< bool > const &ambiguous, bool madeAtEnd)
 
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, oneapi::tbb::task_group *) const noexcept
 
- Public Member Functions inherited from edm::ProductResolverBase
BranchDescription const & branchDescription () const
 
std::string const & moduleLabel () const
 
ProductResolverBaseoperator= (ProductResolverBase const &)=delete
 
void prefetchAsync (WaitingTaskHolder waitTask, Principal const &principal, bool skipCurrentProcess, ServiceToken const &token, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const noexcept
 
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 resetBranchDescription (std::shared_ptr< BranchDescription const > bd)
 
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, MergeableRunProductMetadata const *mergeableRunProductMetadata) const
 
void setMergeableRunProductMetadata (MergeableRunProductMetadata const *mrpm)
 
void setProductID (ProductID const &pid)
 
void setProductProvenanceRetriever (ProductProvenanceRetriever const *provRetriever)
 
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

BranchDescription const & branchDescription_ () const override
 
void prefetchAsync_ (WaitingTaskHolder waitTask, Principal const &principal, bool skipCurrentProcess, ServiceToken const &token, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const noexcept override
 
ProductProvenance const * productProvenancePtr_ () const override
 
bool productResolved_ () const final
 
bool productUnavailable_ () const override
 
bool productWasDeleted_ () const override
 
bool productWasFetchedAndIsValid_ (bool iSkipCurrentProcess) const override
 
Provenance const * provenance_ () const override
 
void resetBranchDescription_ (std::shared_ptr< BranchDescription const > bd) override
 
void resetProductData_ (bool deleteEarly) override
 
std::string const & resolvedModuleLabel_ () const override
 
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
 
void setProductID_ (ProductID const &pid) override
 
void setProductProvenanceRetriever_ (ProductProvenanceRetriever const *provRetriever) override
 
bool singleProduct_ () const override
 
Resolution tryResolver (unsigned int index, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
 
bool unscheduledWasNotRun_ () const override
 
unsigned int unsetIndexValue () const
 

Private Attributes

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

Detailed Description

Definition at line 512 of file ProductResolvers.h.

Member Typedef Documentation

◆ ProductStatus

Definition at line 514 of file ProductResolvers.h.

Constructor & Destructor Documentation

◆ NoProcessProductResolver()

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

Definition at line 919 of file ProductResolvers.cc.

922  : matchingHolders_(matchingHolders),
923  ambiguous_(ambiguous),
926  prefetchRequested_(false),
928  madeAtEnd_{madeAtEnd} {
929  assert(ambiguous_.size() == matchingHolders_.size());
930  }
assert(be >=bs)
std::atomic< unsigned int > lastSkipCurrentCheckIndex_
std::atomic< bool > prefetchRequested_
std::atomic< unsigned int > lastCheckIndex_
std::atomic< bool > skippingPrefetchRequested_
std::vector< bool > ambiguous_
static constexpr unsigned int kUnsetOffset
std::vector< ProductResolverIndex > matchingHolders_

Member Function Documentation

◆ branchDescription_()

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

Implements edm::ProductResolverBase.

Definition at line 1194 of file ProductResolvers.cc.

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

1194  {
1196  << "NoProcessProductResolver::branchDescription_() not implemented and should never be called.\n"
1197  << "Contact a Framework developer\n";
1198  }

◆ connectTo()

void edm::NoProcessProductResolver::connectTo ( ProductResolverBase const &  iOther,
Principal const *   
)
finalvirtual

Implements edm::ProductResolverBase.

Definition at line 1212 of file ProductResolvers.cc.

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

1212  {
1214  << "NoProcessProductResolver::connectTo() not implemented and should never be called.\n"
1215  << "Contact a Framework developer\n";
1216  }

◆ dataValidFromResolver()

bool edm::NoProcessProductResolver::dataValidFromResolver ( unsigned int  iProcessingIndex,
Principal const &  principal,
bool  iSkipCurrentProcess 
) const

Definition at line 1086 of file ProductResolvers.cc.

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

1088  {
1089  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
1090  auto k = lookupProcessOrder[iProcessingIndex];
1091  ProductResolverBase const* productResolver = principal.getProductResolverByIndex(matchingHolders_[k]);
1092 
1093  if (productResolver->productWasFetchedAndIsValid(iSkipCurrentProcess)) {
1094  setCache(iSkipCurrentProcess, k, nullptr);
1095  return true;
1096  }
1097  return false;
1098  }
void setCache(bool skipCurrentProcess, ProductResolverIndex index, std::exception_ptr exceptionPtr) const
std::vector< ProductResolverIndex > matchingHolders_

◆ prefetchAsync_()

void edm::NoProcessProductResolver::prefetchAsync_ ( WaitingTaskHolder  waitTask,
Principal const &  principal,
bool  skipCurrentProcess,
ServiceToken const &  token,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
overrideprivatevirtualnoexcept

Implements edm::ProductResolverBase.

Definition at line 988 of file ProductResolvers.cc.

References unpackBuffers-CaloStage2::token.

993  {
994  bool timeToMakeAtEnd = true;
995  if (madeAtEnd_ and mcc) {
996  timeToMakeAtEnd = mcc->parent().isAtEndTransition();
997  }
998 
999  //If timeToMakeAtEnd is false, then it is equivalent to skipping the current process
1000  if (not skipCurrentProcess and timeToMakeAtEnd) {
1001  //need to try changing prefetchRequested_ before adding to waitingTasks_
1002  bool expected = false;
1003  bool prefetchRequested = prefetchRequested_.compare_exchange_strong(expected, true);
1004  waitingTasks_.add(waitTask);
1005 
1006  if (prefetchRequested) {
1007  //we are the first thread to request
1008  tryPrefetchResolverAsync(0, principal, false, sra, mcc, token, waitTask.group());
1009  }
1010  } else {
1011  skippingWaitingTasks_.add(waitTask);
1012  bool expected = false;
1013  if (skippingPrefetchRequested_.compare_exchange_strong(expected, true)) {
1014  //we are the first thread to request
1015  tryPrefetchResolverAsync(0, principal, true, sra, mcc, token, waitTask.group());
1016  }
1017  }
1018  }
void tryPrefetchResolverAsync(unsigned int iProcessingIndex, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc, ServiceToken token, oneapi::tbb::task_group *) const noexcept
void add(oneapi::tbb::task_group *, WaitingTask *)
Adds task to the waiting list.
std::atomic< bool > prefetchRequested_
std::atomic< bool > skippingPrefetchRequested_

◆ prefetchFailed()

void edm::NoProcessProductResolver::prefetchFailed ( unsigned int  iProcessingIndex,
Principal const &  principal,
bool  iSkipCurrentProcess,
std::exception_ptr  iExceptPtr 
) const

Definition at line 1076 of file ProductResolvers.cc.

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

1079  {
1080  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
1081  auto k = lookupProcessOrder[iProcessingIndex];
1082 
1083  setCache(iSkipCurrentProcess, k, iExceptPtr);
1084  }
void setCache(bool skipCurrentProcess, ProductResolverIndex index, std::exception_ptr exceptionPtr) const

◆ productProvenancePtr_()

ProductProvenance const * edm::NoProcessProductResolver::productProvenancePtr_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1145 of file ProductResolvers.cc.

1145 { return nullptr; }

◆ productResolved_()

bool edm::NoProcessProductResolver::productResolved_ ( ) const
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1176 of file ProductResolvers.cc.

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

1176  {
1178  << "NoProcessProductResolver::productResolved_() not implemented and should never be called.\n"
1179  << "Contact a Framework developer\n";
1180  }

◆ productUnavailable_()

bool edm::NoProcessProductResolver::productUnavailable_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1170 of file ProductResolvers.cc.

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

1170  {
1172  << "NoProcessProductResolver::productUnavailable_() not implemented and should never be called.\n"
1173  << "Contact a Framework developer\n";
1174  }

◆ productWasDeleted_()

bool edm::NoProcessProductResolver::productWasDeleted_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1182 of file ProductResolvers.cc.

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

1182  {
1184  << "NoProcessProductResolver::productWasDeleted_() not implemented and should never be called.\n"
1185  << "Contact a Framework developer\n";
1186  }

◆ productWasFetchedAndIsValid_()

bool edm::NoProcessProductResolver::productWasFetchedAndIsValid_ ( bool  iSkipCurrentProcess) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1188 of file ProductResolvers.cc.

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

1188  {
1190  << "NoProcessProductResolver::productWasFetchedAndIsValid_() not implemented and should never be called.\n"
1191  << "Contact a Framework developer\n";
1192  }

◆ provenance_()

Provenance const * edm::NoProcessProductResolver::provenance_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1206 of file ProductResolvers.cc.

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

1206  {
1208  << "NoProcessProductResolver::provenance_() not implemented and should never be called.\n"
1209  << "Contact a Framework developer\n";
1210  }

◆ resetBranchDescription_()

void edm::NoProcessProductResolver::resetBranchDescription_ ( std::shared_ptr< BranchDescription const >  bd)
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1200 of file ProductResolvers.cc.

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

1200  {
1202  << "NoProcessProductResolver::resetBranchDescription_() not implemented and should never be called.\n"
1203  << "Contact a Framework developer\n";
1204  }

◆ resetProductData_()

void edm::NoProcessProductResolver::resetProductData_ ( bool  deleteEarly)
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1149 of file ProductResolvers.cc.

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

1149  {
1150  // This function should never receive 'true'. On the other hand,
1151  // nothing should break if a 'true' is passed, because
1152  // NoProcessProductResolver just forwards the resolve
1153  const auto resetValue = unsetIndexValue();
1154  lastCheckIndex_ = resetValue;
1155  lastSkipCurrentCheckIndex_ = resetValue;
1156  prefetchRequested_ = false;
1158  waitingTasks_.reset();
1160  }
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_
unsigned int unsetIndexValue() const

◆ resolvedModuleLabel_()

std::string const& edm::NoProcessProductResolver::resolvedModuleLabel_ ( ) const
inlineoverrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 560 of file ProductResolvers.h.

References edm::ProductResolverBase::moduleLabel().

560 { return moduleLabel(); }
std::string const & moduleLabel() const

◆ resolveProduct_()

ProductResolverBase::Resolution edm::NoProcessProductResolver::resolveProduct_ ( Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 941 of file ProductResolvers.cc.

References ambiguous_, cms::cuda::assert(), dqmdumpme::k, kAmbiguousOffset, kMissingOffset, kUnsetOffset, lastCheckIndex_, lastSkipCurrentCheckIndex_, edm::Principal::lookupProcessOrder(), madeAtEnd_, edm::ProductResolverBase::Resolution::makeAmbiguous(), matchingHolders_, edm::ProductResolverIndexInvalid, Resolution, L1TObjectsTimingClient_cff::resolution, and tryResolver().

944  {
945  //See if we've already cached which Resolver we should call or if
946  // we know it is ambiguous
947  const unsigned int choiceSize = ambiguous_.size();
948 
949  //madeAtEnd_==true and not at end transition is the same as skipping the current process
950  if ((not skipCurrentProcess) and (madeAtEnd_ and mcc)) {
951  skipCurrentProcess = not mcc->parent().isAtEndTransition();
952  }
953 
954  unsigned int checkCacheIndex = skipCurrentProcess ? lastSkipCurrentCheckIndex_.load() : lastCheckIndex_.load();
955  if (checkCacheIndex != choiceSize + kUnsetOffset) {
956  if (checkCacheIndex == choiceSize + kAmbiguousOffset) {
958  } else if (checkCacheIndex == choiceSize + kMissingOffset) {
959  return Resolution(nullptr);
960  }
961  return tryResolver(checkCacheIndex, principal, skipCurrentProcess, sra, mcc);
962  }
963 
964  std::atomic<unsigned int>& updateCacheIndex = skipCurrentProcess ? lastSkipCurrentCheckIndex_ : lastCheckIndex_;
965 
966  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
967  for (unsigned int k : lookupProcessOrder) {
968  assert(k < ambiguous_.size());
969  if (k == 0)
970  break; // Done
971  if (ambiguous_[k]) {
972  updateCacheIndex = choiceSize + kAmbiguousOffset;
974  }
976  auto resolution = tryResolver(k, principal, skipCurrentProcess, sra, mcc);
977  if (resolution.data() != nullptr) {
978  updateCacheIndex = k;
979  return resolution;
980  }
981  }
982  }
983 
984  updateCacheIndex = choiceSize + kMissingOffset;
985  return Resolution(nullptr);
986  }
static constexpr unsigned int kAmbiguousOffset
static constexpr unsigned int kMissingOffset
assert(be >=bs)
std::atomic< unsigned int > lastSkipCurrentCheckIndex_
std::atomic< unsigned int > lastCheckIndex_
std::vector< bool > ambiguous_
static constexpr unsigned int kUnsetOffset
std::vector< ProductResolverIndex > matchingHolders_
Resolution tryResolver(unsigned int index, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const

◆ setCache()

void edm::NoProcessProductResolver::setCache ( bool  skipCurrentProcess,
ProductResolverIndex  index,
std::exception_ptr  exceptionPtr 
) const
private

Definition at line 1020 of file ProductResolvers.cc.

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

Referenced by dataValidFromResolver(), and prefetchFailed().

1022  {
1023  if (not iSkipCurrentProcess) {
1024  lastCheckIndex_ = iIndex;
1025  waitingTasks_.doneWaiting(iExceptPtr);
1026  } else {
1027  lastSkipCurrentCheckIndex_ = iIndex;
1028  skippingWaitingTasks_.doneWaiting(iExceptPtr);
1029  }
1030  }
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_

◆ setProductID_()

void edm::NoProcessProductResolver::setProductID_ ( ProductID const &  pid)
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1143 of file ProductResolvers.cc.

1143 {}

◆ setProductProvenanceRetriever_()

void edm::NoProcessProductResolver::setProductProvenanceRetriever_ ( ProductProvenanceRetriever const *  provRetriever)
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1141 of file ProductResolvers.cc.

1141 {}

◆ singleProduct_()

bool edm::NoProcessProductResolver::singleProduct_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1162 of file ProductResolvers.cc.

1162 { return false; }

◆ tryPrefetchResolverAsync()

void edm::NoProcessProductResolver::tryPrefetchResolverAsync ( unsigned int  iProcessingIndex,
Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc,
ServiceToken  token,
oneapi::tbb::task_group *  group 
) const
noexcept

Definition at line 1100 of file ProductResolvers.cc.

References cms::cuda::assert(), watchdog::group, dqmdumpme::k, kAmbiguousOffset, kMissingOffset, edm::ProductResolverBase::prefetchAsync(), edm::ProductResolverIndexInvalid, TrackValidation_cff::task, and unpackBuffers-CaloStage2::token.

1106  {
1107  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
1108  auto index = iProcessingIndex;
1109 
1110  const unsigned int choiceSize = ambiguous_.size();
1111  unsigned int newCacheIndex = choiceSize + kMissingOffset;
1112  while (index < lookupProcessOrder.size()) {
1113  auto k = lookupProcessOrder[index];
1114  if (k == 0) {
1115  break;
1116  }
1117  assert(k < ambiguous_.size());
1118  if (ambiguous_[k]) {
1119  newCacheIndex = choiceSize + kAmbiguousOffset;
1120  break;
1121  }
1123  //make new task
1124 
1125  auto task = new TryNextResolverWaitingTask(this, index, &principal, sra, mcc, skipCurrentProcess, token, group);
1126  WaitingTaskHolder hTask(*group, task);
1127  ProductResolverBase const* productResolver = principal.getProductResolverByIndex(matchingHolders_[k]);
1128 
1129  //Make sure the Services are available on this thread
1131 
1132  productResolver->prefetchAsync(hTask, principal, skipCurrentProcess, token, sra, mcc);
1133  return;
1134  }
1135  ++index;
1136  }
1137  //data product unavailable
1138  setCache(skipCurrentProcess, newCacheIndex, nullptr);
1139  }
static constexpr unsigned int kAmbiguousOffset
static constexpr unsigned int kMissingOffset
assert(be >=bs)
void setCache(bool skipCurrentProcess, ProductResolverIndex index, std::exception_ptr exceptionPtr) const
std::vector< bool > ambiguous_
std::vector< ProductResolverIndex > matchingHolders_

◆ tryResolver()

ProductResolverBase::Resolution edm::NoProcessProductResolver::tryResolver ( unsigned int  index,
Principal const &  principal,
bool  skipCurrentProcess,
SharedResourcesAcquirer sra,
ModuleCallingContext const *  mcc 
) const
private

Definition at line 932 of file ProductResolvers.cc.

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

Referenced by resolveProduct_().

936  {
937  ProductResolverBase const* productResolver = principal.getProductResolverByIndex(matchingHolders_[index]);
938  return productResolver->resolveProduct(principal, skipCurrentProcess, sra, mcc);
939  }
std::vector< ProductResolverIndex > matchingHolders_

◆ unscheduledWasNotRun_()

bool edm::NoProcessProductResolver::unscheduledWasNotRun_ ( ) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1164 of file ProductResolvers.cc.

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

1164  {
1166  << "NoProcessProductResolver::unscheduledWasNotRun_() not implemented and should never be called.\n"
1167  << "Contact a Framework developer\n";
1168  }

◆ unsetIndexValue()

unsigned int edm::NoProcessProductResolver::unsetIndexValue ( ) const
inlineprivate

Definition at line 1147 of file ProductResolvers.cc.

References ambiguous_, and kUnsetOffset.

Referenced by resetProductData_().

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

Member Data Documentation

◆ ambiguous_

std::vector<bool> edm::NoProcessProductResolver::ambiguous_
private

Definition at line 576 of file ProductResolvers.h.

Referenced by resolveProduct_(), and unsetIndexValue().

◆ lastCheckIndex_

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

Definition at line 579 of file ProductResolvers.h.

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

◆ lastSkipCurrentCheckIndex_

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

Definition at line 580 of file ProductResolvers.h.

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

◆ madeAtEnd_

const bool edm::NoProcessProductResolver::madeAtEnd_
private

Definition at line 583 of file ProductResolvers.h.

Referenced by resolveProduct_().

◆ matchingHolders_

std::vector<ProductResolverIndex> edm::NoProcessProductResolver::matchingHolders_
private

Definition at line 575 of file ProductResolvers.h.

Referenced by dataValidFromResolver(), resolveProduct_(), and tryResolver().

◆ prefetchRequested_

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

Definition at line 581 of file ProductResolvers.h.

Referenced by resetProductData_().

◆ skippingPrefetchRequested_

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

Definition at line 582 of file ProductResolvers.h.

Referenced by resetProductData_().

◆ skippingWaitingTasks_

WaitingTaskList edm::NoProcessProductResolver::skippingWaitingTasks_
mutableprivate

Definition at line 578 of file ProductResolvers.h.

Referenced by resetProductData_(), and setCache().

◆ waitingTasks_

WaitingTaskList edm::NoProcessProductResolver::waitingTasks_
mutableprivate

Definition at line 577 of file ProductResolvers.h.

Referenced by resetProductData_(), and setCache().