5#ifndef ROOT_RProfileConcurrentFiller
6#define ROOT_RProfileConcurrentFiller
18namespace Experimental {
52 throw std::invalid_argument(
"profile must not be nullptr");
64 if (!context.expired()) {
A histogram filler to concurrently fill an RProfile.
~RProfileConcurrentFiller()
RProfileConcurrentFiller(RProfileConcurrentFiller &&)=delete
RProfileConcurrentFiller(const RProfileConcurrentFiller &)=delete
std::shared_ptr< RProfile > fProfile
A pointer to the filled profile histogram.
std::shared_ptr< RProfileFillContext > CreateFillContext()
Create a new context for concurrent filling.
RProfileConcurrentFiller & operator=(RProfileConcurrentFiller &&)=delete
RProfileConcurrentFiller(std::shared_ptr< RProfile > profile)
Create a filler object.
std::mutex fMutex
Mutex to protect access to the list of fill contexts (not for filling itself!)
RProfileConcurrentFiller & operator=(const RProfileConcurrentFiller &)=delete
const std::shared_ptr< RProfile > & GetProfile() const
std::vector< std::weak_ptr< RProfileFillContext > > fFillContexts
The list of fill contexts, for checks during destruction.
A context to concurrently fill an RProfile.