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) 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, ServiceToken const &token, 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, MergeableRunProductMetadata const *mergeableRunProductMetadata=nullptr) const
 
void putProduct (std::unique_ptr< WrapperBase > edp) 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_ (WaitingTask *waitTask, Principal const &principal, bool skipCurrentProcess, ServiceToken const &token, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const 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 putOrMergeProduct_ (std::unique_ptr< WrapperBase > prod, MergeableRunProductMetadata const *mergeableRunProductMetadata) const final
 
void putProduct_ (std::unique_ptr< WrapperBase > edp) 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 431 of file ProductResolvers.h.

Member Typedef Documentation

◆ ProductStatus

Definition at line 433 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 853 of file ProductResolvers.cc.

856  : matchingHolders_(matchingHolders),
857  ambiguous_(ambiguous),
860  prefetchRequested_(false),
862  madeAtEnd_{madeAtEnd} {
863  assert(ambiguous_.size() == matchingHolders_.size());
864  }

Member Function Documentation

◆ branchDescription_()

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

Implements edm::ProductResolverBase.

Definition at line 1143 of file ProductResolvers.cc.

1143  {
1145  << "NoProcessProductResolver::branchDescription_() not implemented and should never be called.\n"
1146  << "Contact a Framework developer\n";
1147  }

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

◆ connectTo()

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

Implements edm::ProductResolverBase.

Definition at line 1161 of file ProductResolvers.cc.

1161  {
1163  << "NoProcessProductResolver::connectTo() not implemented and should never be called.\n"
1164  << "Contact a Framework developer\n";
1165  }

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

◆ dataValidFromResolver()

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

Definition at line 1018 of file ProductResolvers.cc.

1020  {
1021  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
1022  auto k = lookupProcessOrder[iProcessingIndex];
1023  ProductResolverBase const* productResolver = principal.getProductResolverByIndex(matchingHolders_[k]);
1024 
1025  if (productResolver->productWasFetchedAndIsValid(iSkipCurrentProcess)) {
1026  setCache(iSkipCurrentProcess, k, nullptr);
1027  return true;
1028  }
1029  return false;
1030  }

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

◆ prefetchAsync_()

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

Implements edm::ProductResolverBase.

Definition at line 922 of file ProductResolvers.cc.

927  {
928  bool timeToMakeAtEnd = true;
929  if (madeAtEnd_ and mcc) {
930  timeToMakeAtEnd = mcc->parent().isAtEndTransition();
931  }
932 
933  //If timeToMakeAtEnd is false, then it is equivalent to skipping the current process
934  if (not skipCurrentProcess and timeToMakeAtEnd) {
935  //need to try changing prefetchRequested_ before adding to waitingTasks_
936  bool expected = false;
937  bool prefetchRequested = prefetchRequested_.compare_exchange_strong(expected, true);
938  waitingTasks_.add(waitTask);
939 
940  if (prefetchRequested) {
941  //we are the first thread to request
942  tryPrefetchResolverAsync(0, principal, false, sra, mcc, token);
943  }
944  } else {
945  skippingWaitingTasks_.add(waitTask);
946  bool expected = false;
947  if (skippingPrefetchRequested_.compare_exchange_strong(expected, true)) {
948  //we are the first thread to request
949  tryPrefetchResolverAsync(0, principal, true, sra, mcc, token);
950  }
951  }
952  }

References edm::WaitingTaskList::add(), madeAtEnd_, prefetchRequested_, skippingPrefetchRequested_, skippingWaitingTasks_, unpackBuffers-CaloStage2::token, tryPrefetchResolverAsync(), and waitingTasks_.

◆ prefetchFailed()

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

Definition at line 1008 of file ProductResolvers.cc.

1011  {
1012  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
1013  auto k = lookupProcessOrder[iProcessingIndex];
1014 
1015  setCache(iSkipCurrentProcess, k, iExceptPtr);
1016  }

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

◆ productProvenancePtr_()

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

Implements edm::ProductResolverBase.

Definition at line 1080 of file ProductResolvers.cc.

1080 { return nullptr; }

◆ productResolved_()

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

Implements edm::ProductResolverBase.

Definition at line 1111 of file ProductResolvers.cc.

1111  {
1113  << "NoProcessProductResolver::productResolved_() not implemented and should never be called.\n"
1114  << "Contact a Framework developer\n";
1115  }

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

◆ productUnavailable_()

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

Implements edm::ProductResolverBase.

Definition at line 1105 of file ProductResolvers.cc.

1105  {
1107  << "NoProcessProductResolver::productUnavailable_() not implemented and should never be called.\n"
1108  << "Contact a Framework developer\n";
1109  }

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

◆ productWasDeleted_()

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

Implements edm::ProductResolverBase.

Definition at line 1117 of file ProductResolvers.cc.

1117  {
1119  << "NoProcessProductResolver::productWasDeleted_() not implemented and should never be called.\n"
1120  << "Contact a Framework developer\n";
1121  }

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

◆ productWasFetchedAndIsValid_()

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

Implements edm::ProductResolverBase.

Definition at line 1123 of file ProductResolvers.cc.

1123  {
1125  << "NoProcessProductResolver::productWasFetchedAndIsValid_() not implemented and should never be called.\n"
1126  << "Contact a Framework developer\n";
1127  }

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

◆ provenance_()

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

Implements edm::ProductResolverBase.

Definition at line 1155 of file ProductResolvers.cc.

1155  {
1157  << "NoProcessProductResolver::provenance_() not implemented and should never be called.\n"
1158  << "Contact a Framework developer\n";
1159  }

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

◆ putOrMergeProduct_()

void edm::NoProcessProductResolver::putOrMergeProduct_ ( std::unique_ptr< WrapperBase prod,
MergeableRunProductMetadata const *  mergeableRunProductMetadata 
) const
finalprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1135 of file ProductResolvers.cc.

1136  {
1138  << "NoProcessProductResolver::putOrMergeProduct_(std::unique_ptr<WrapperBase> edp, MergeableRunProductMetadata "
1139  "const*) not implemented and should never be called.\n"
1140  << "Contact a Framework developer\n";
1141  }

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

◆ putProduct_()

void edm::NoProcessProductResolver::putProduct_ ( std::unique_ptr< WrapperBase edp) const
overrideprivatevirtual

Implements edm::ProductResolverBase.

Definition at line 1129 of file ProductResolvers.cc.

1129  {
1131  << "NoProcessProductResolver::putProduct_() not implemented and should never be called.\n"
1132  << "Contact a Framework developer\n";
1133  }

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

◆ resetBranchDescription_()

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

Implements edm::ProductResolverBase.

Definition at line 1149 of file ProductResolvers.cc.

1149  {
1151  << "NoProcessProductResolver::resetBranchDescription_() not implemented and should never be called.\n"
1152  << "Contact a Framework developer\n";
1153  }

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

◆ resetProductData_()

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

Implements edm::ProductResolverBase.

Definition at line 1084 of file ProductResolvers.cc.

1084  {
1085  // This function should never receive 'true'. On the other hand,
1086  // nothing should break if a 'true' is passed, because
1087  // NoProcessProductResolver just forwards the resolve
1088  const auto resetValue = unsetIndexValue();
1089  lastCheckIndex_ = resetValue;
1090  lastSkipCurrentCheckIndex_ = resetValue;
1091  prefetchRequested_ = false;
1093  waitingTasks_.reset();
1095  }

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

◆ resolvedModuleLabel_()

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

Implements edm::ProductResolverBase.

Definition at line 481 of file ProductResolvers.h.

481 { return moduleLabel(); }

References edm::ProductResolverBase::moduleLabel().

◆ resolveProduct_()

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

Implements edm::ProductResolverBase.

Definition at line 875 of file ProductResolvers.cc.

878  {
879  //See if we've already cached which Resolver we should call or if
880  // we know it is ambiguous
881  const unsigned int choiceSize = ambiguous_.size();
882 
883  //madeAtEnd_==true and not at end transition is the same as skipping the current process
884  if ((not skipCurrentProcess) and (madeAtEnd_ and mcc)) {
885  skipCurrentProcess = not mcc->parent().isAtEndTransition();
886  }
887 
888  unsigned int checkCacheIndex = skipCurrentProcess ? lastSkipCurrentCheckIndex_.load() : lastCheckIndex_.load();
889  if (checkCacheIndex != choiceSize + kUnsetOffset) {
890  if (checkCacheIndex == choiceSize + kAmbiguousOffset) {
892  } else if (checkCacheIndex == choiceSize + kMissingOffset) {
893  return Resolution(nullptr);
894  }
895  return tryResolver(checkCacheIndex, principal, skipCurrentProcess, sra, mcc);
896  }
897 
898  std::atomic<unsigned int>& updateCacheIndex = skipCurrentProcess ? lastSkipCurrentCheckIndex_ : lastCheckIndex_;
899 
900  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
901  for (unsigned int k : lookupProcessOrder) {
902  assert(k < ambiguous_.size());
903  if (k == 0)
904  break; // Done
905  if (ambiguous_[k]) {
906  updateCacheIndex = choiceSize + kAmbiguousOffset;
908  }
910  auto resolution = tryResolver(k, principal, skipCurrentProcess, sra, mcc);
911  if (resolution.data() != nullptr) {
912  updateCacheIndex = k;
913  return resolution;
914  }
915  }
916  }
917 
918  updateCacheIndex = choiceSize + kMissingOffset;
919  return Resolution(nullptr);
920  }

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().

◆ setCache()

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

Definition at line 954 of file ProductResolvers.cc.

956  {
957  if (not iSkipCurrentProcess) {
958  lastCheckIndex_ = iIndex;
959  waitingTasks_.doneWaiting(iExceptPtr);
960  } else {
963  }
964  }

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

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

◆ setProductID_()

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

Implements edm::ProductResolverBase.

Definition at line 1078 of file ProductResolvers.cc.

1078 {}

◆ setProductProvenanceRetriever_()

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

Implements edm::ProductResolverBase.

Definition at line 1076 of file ProductResolvers.cc.

1076 {}

◆ singleProduct_()

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

Implements edm::ProductResolverBase.

Definition at line 1097 of file ProductResolvers.cc.

1097 { return false; }

◆ tryPrefetchResolverAsync()

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

Definition at line 1032 of file ProductResolvers.cc.

1037  {
1038  std::vector<unsigned int> const& lookupProcessOrder = principal.lookupProcessOrder();
1039  auto index = iProcessingIndex;
1040 
1041  const unsigned int choiceSize = ambiguous_.size();
1042  unsigned int newCacheIndex = choiceSize + kMissingOffset;
1043  while (index < lookupProcessOrder.size()) {
1044  auto k = lookupProcessOrder[index];
1045  if (k == 0) {
1046  break;
1047  }
1048  assert(k < ambiguous_.size());
1049  if (ambiguous_[k]) {
1050  newCacheIndex = choiceSize + kAmbiguousOffset;
1051  break;
1052  }
1054  //make new task
1055 
1056  auto task = new (tbb::task::allocate_root())
1057  TryNextResolverWaitingTask(this, index, &principal, sra, mcc, skipCurrentProcess, token);
1058  task->increment_ref_count();
1059  ProductResolverBase const* productResolver = principal.getProductResolverByIndex(matchingHolders_[k]);
1060 
1061  //Make sure the Services are available on this thread
1063 
1064  productResolver->prefetchAsync(task, principal, skipCurrentProcess, token, sra, mcc);
1065  if (0 == task->decrement_ref_count()) {
1066  tbb::task::spawn(*task);
1067  }
1068  return;
1069  }
1070  ++index;
1071  }
1072  //data product unavailable
1073  setCache(skipCurrentProcess, newCacheIndex, nullptr);
1074  }

References ambiguous_, cms::cuda::assert(), edm::Principal::getProductResolverByIndex(), dqmdumpme::k, kAmbiguousOffset, kMissingOffset, edm::Principal::lookupProcessOrder(), matchingHolders_, edm::ProductResolverBase::prefetchAsync(), edm::ProductResolverIndexInvalid, setCache(), TrackValidation_cff::task, and unpackBuffers-CaloStage2::token.

Referenced by prefetchAsync_().

◆ tryResolver()

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

Definition at line 866 of file ProductResolvers.cc.

870  {
871  ProductResolverBase const* productResolver = principal.getProductResolverByIndex(matchingHolders_[index]);
872  return productResolver->resolveProduct(principal, skipCurrentProcess, sra, mcc);
873  }

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

Referenced by resolveProduct_().

◆ unscheduledWasNotRun_()

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

Implements edm::ProductResolverBase.

Definition at line 1099 of file ProductResolvers.cc.

1099  {
1101  << "NoProcessProductResolver::unscheduledWasNotRun_() not implemented and should never be called.\n"
1102  << "Contact a Framework developer\n";
1103  }

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

◆ unsetIndexValue()

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

Definition at line 1082 of file ProductResolvers.cc.

1082 { return ambiguous_.size() + kUnsetOffset; }

References ambiguous_, and kUnsetOffset.

Referenced by resetProductData_().

Member Data Documentation

◆ ambiguous_

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

Definition at line 497 of file ProductResolvers.h.

Referenced by resolveProduct_(), tryPrefetchResolverAsync(), and unsetIndexValue().

◆ lastCheckIndex_

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

Definition at line 500 of file ProductResolvers.h.

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

◆ lastSkipCurrentCheckIndex_

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

Definition at line 501 of file ProductResolvers.h.

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

◆ madeAtEnd_

const bool edm::NoProcessProductResolver::madeAtEnd_
private

Definition at line 504 of file ProductResolvers.h.

Referenced by prefetchAsync_(), and resolveProduct_().

◆ matchingHolders_

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

◆ prefetchRequested_

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

Definition at line 502 of file ProductResolvers.h.

Referenced by prefetchAsync_(), and resetProductData_().

◆ skippingPrefetchRequested_

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

Definition at line 503 of file ProductResolvers.h.

Referenced by prefetchAsync_(), and resetProductData_().

◆ skippingWaitingTasks_

WaitingTaskList edm::NoProcessProductResolver::skippingWaitingTasks_
mutableprivate

Definition at line 499 of file ProductResolvers.h.

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

◆ waitingTasks_

WaitingTaskList edm::NoProcessProductResolver::waitingTasks_
mutableprivate

Definition at line 498 of file ProductResolvers.h.

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

edm::ProductResolverBase::ProductResolverBase
ProductResolverBase()
Definition: ProductResolverBase.cc:14
edm::NoProcessProductResolver::matchingHolders_
std::vector< ProductResolverIndex > matchingHolders_
Definition: ProductResolvers.h:496
edm::NoProcessProductResolver::unsetIndexValue
unsigned int unsetIndexValue() const
Definition: ProductResolvers.cc:1082
edm::errors::LogicError
Definition: EDMException.h:37
edm::NoProcessProductResolver::ambiguous_
std::vector< bool > ambiguous_
Definition: ProductResolvers.h:497
kAmbiguousOffset
static constexpr unsigned int kAmbiguousOffset
Definition: ProductResolvers.cc:27
edm::NoProcessProductResolver::lastSkipCurrentCheckIndex_
std::atomic< unsigned int > lastSkipCurrentCheckIndex_
Definition: ProductResolvers.h:501
edm::WaitingTaskList::add
void add(WaitingTask *)
Adds task to the waiting list.
Definition: WaitingTaskList.cc:89
kMissingOffset
static constexpr unsigned int kMissingOffset
Definition: ProductResolvers.cc:28
cms::cuda::assert
assert(be >=bs)
edm::NoProcessProductResolver::lastCheckIndex_
std::atomic< unsigned int > lastCheckIndex_
Definition: ProductResolvers.h:500
edm::NoProcessProductResolver::tryResolver
Resolution tryResolver(unsigned int index, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc) const
Definition: ProductResolvers.cc:866
edm::WaitingTaskList::reset
void reset()
Resets access to the resource so that added tasks will wait.
Definition: WaitingTaskList.cc:51
edm::NoProcessProductResolver::skippingPrefetchRequested_
std::atomic< bool > skippingPrefetchRequested_
Definition: ProductResolvers.h:503
kUnsetOffset
static constexpr unsigned int kUnsetOffset
Definition: ProductResolvers.cc:26
TrackValidation_cff.task
task
Definition: TrackValidation_cff.py:252
L1TObjectsTimingClient_cff.resolution
resolution
Definition: L1TObjectsTimingClient_cff.py:52
edm::WaitingTaskList::doneWaiting
void doneWaiting(std::exception_ptr iPtr)
Signals that the resource is now available and tasks should be spawned.
Definition: WaitingTaskList.cc:169
dqmdumpme.k
k
Definition: dqmdumpme.py:60
edm::NoProcessProductResolver::tryPrefetchResolverAsync
void tryPrefetchResolverAsync(unsigned int iProcessingIndex, Principal const &principal, bool skipCurrentProcess, SharedResourcesAcquirer *sra, ModuleCallingContext const *mcc, ServiceToken token) const
Definition: ProductResolvers.cc:1032
edm::NoProcessProductResolver::setCache
void setCache(bool skipCurrentProcess, ProductResolverIndex index, std::exception_ptr exceptionPtr) const
Definition: ProductResolvers.cc:954
Resolution
Definition: trackSplitPlot.h:33
edm::ServiceRegistry::Operate
friend class Operate
Definition: ServiceRegistry.h:54
edm::ProductResolverIndexInvalid
Definition: ProductResolverIndex.h:16
edm::NoProcessProductResolver::madeAtEnd_
const bool madeAtEnd_
Definition: ProductResolvers.h:504
edm::ProductResolverBase::Resolution::makeAmbiguous
static Resolution makeAmbiguous()
Definition: ProductResolverBase.h:48
edm::NoProcessProductResolver::waitingTasks_
WaitingTaskList waitingTasks_
Definition: ProductResolvers.h:498
edm::ProductResolverBase::moduleLabel
std::string const & moduleLabel() const
Definition: ProductResolverBase.h:119
edm::NoProcessProductResolver::skippingWaitingTasks_
WaitingTaskList skippingWaitingTasks_
Definition: ProductResolvers.h:499
Exception
Definition: hltDiff.cc:246
edm::NoProcessProductResolver::prefetchRequested_
std::atomic< bool > prefetchRequested_
Definition: ProductResolvers.h:502
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316