12 unsigned int,
const std::unordered_map<std::string, ROOT::RDF::Experimental::RSample *> &)
const
21 std::atomic<ULong64_t> entryCount(0ull);
25 while (!ranges.empty()) {
27 [&lm, &slotStack, &entryCount](
const std::pair<ULong64_t, ULong64_t> &range) {
36 auto &&processedEntries = entryCount.load();
37 if ((end - begin) > processedEntries) {
39 "RDataFrame stopped processing after %lld entries, whereas an entry range (begin=%lld,end=%lld) was "
40 "requested. Consider adjusting the end value of the entry range to a maximum of %lld.",
41 processedEntries, begin, end, begin + processedEntries);
void Warning(const char *location, const char *msgfmt,...)
Use this function in warning situations.
The head node of a RDF computation graph.
void DataSourceThreadTask(const std::pair< ULong64_t, ULong64_t > &entryRange, ROOT::Internal::RSlotStack &slotStack, std::atomic< ULong64_t > &entryCount)
The task run by every thread on the input entry range, for the generic RDataSource.
A thread-safe list of N indexes (0 to size - 1).
friend ROOT::RDF::RSampleInfo ROOT::Internal::RDF::CreateSampleInfo(const ROOT::RDF::RDataSource &, unsigned int, const std::unordered_map< std::string, ROOT::RDF::Experimental::RSample * > &)
friend void ROOT::Internal::RDF::ProcessMT(RDataSource &, ROOT::Detail::RDF::RLoopManager &)
virtual std::vector< std::pair< ULong64_t, ULong64_t > > GetEntryRanges()=0
Return ranges of entries to distribute to tasks.
std::optional< std::pair< ULong64_t, ULong64_t > > fGlobalEntryRange
This type represents a sample identifier, to be used in conjunction with RDataFrame features such as ...
This class provides a simple interface to execute the same task multiple times in parallel threads,...
void Foreach(F func, unsigned nTimes, unsigned nChunks=0)
Execute a function without arguments several times in parallel, dividing the execution in nChunks.