12#ifndef ROOT_ROOFIT_MultiProcess_Poller
13#define ROOT_ROOFIT_MultiProcess_Poller
22namespace MultiProcess {
46 if (it->second == &channel) {
51 throw std::runtime_error(
"Poller::unregister_channel: channel not registered");
58 std::vector<std::size_t>
poll(
int timeout_ms = -1)
const
60 if (
entries_.empty() && timeout_ms < 0) {
61 throw std::logic_error(
"Poller::poll: waiting without timeout on a poller with no registered channels");
63 std::vector<const Channel *> channels;
66 channels.push_back(entry.second);
68 std::vector<std::size_t>
result;
76 std::vector<std::pair<std::size_t, const Channel *>>
entries_;
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
One endpoint of a full-duplex interprocess message pipe.
static std::vector< std::size_t > wait(const std::vector< const Channel * > &read_channels, int timeout_ms)
Wait until at least one of read_channels has input available, flushing the pending output of all live...
Waits for input on a set of registered Channels.
std::vector< std::pair< std::size_t, const Channel * > > entries_
void unregister_channel(const Channel &channel)
std::vector< std::size_t > poll(int timeout_ms=-1) const
Wait for input; returns the registration indices of readable channels.
std::size_t register_channel(const Channel &channel)
Register a channel for input polling; returns its stable index.
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...