Namespaces | |
| namespace | Detail |
Classes | |
| class | Channel |
| One endpoint of a full-duplex interprocess message pipe. More... | |
| class | Config |
| Configuration for MultiProcess infrastructure. More... | |
| class | FIFOQueue |
| A Queue with simple FIFO behavior. More... | |
| class | HeatmapAnalyzer |
| Reads and processes logfiles produced by RooFit::MultiProcess::ProcessTimer. More... | |
| class | Job |
| interface class for defining the actual work that must be done More... | |
| class | JobManager |
| Main point of access for all MultiProcess infrastructure. More... | |
| struct | JobTask |
| combined job_object, state and task identifier type More... | |
| class | Message |
| A contiguous byte buffer used as the unit of interprocess communication. More... | |
| class | Messenger |
| Manages the interprocess communication channels and wraps send and receive calls. More... | |
| struct | OrderedJobTask |
| class | Poller |
| Waits for input on a set of registered Channels. More... | |
| class | ppoll_error_t |
| Thrown when a blocking wait on a Channel is interrupted, e.g. More... | |
| class | PriorityQueue |
| Queue that orders tasks according to specified task priorities. More... | |
| class | ProcessManager |
| Fork processes for queue and workers. More... | |
| class | ProcessTimer |
| Can be used to generate timings of multiple processes simultaneously and output logs. More... | |
| class | Queue |
| Keeps a queue of tasks for workers and manages the queue process through its event loop. More... | |
Typedefs | |
| using | State = std::size_t |
| using | Task = std::size_t |
Enumerations | |
| enum class | M2Q : int { enqueue = 10 } |
| enum class | Q2W : int { dequeue_rejected = 40 , dequeue_accepted = 41 } |
| enum class | W2Q : int { dequeue = 30 } |
| enum class | X2X : int { ping = -1 , pong = -2 , initial_value = 0 } |
Functions | |
| std::tuple< std::vector< std::size_t >, bool > | careful_poll (Poller &poller) |
| int | chill_wait () |
| pid_t | fork_and_handle_errors () |
| bool | is_worker_loop_running () |
| std::ostream & | operator<< (std::ostream &out, const M2Q value) |
| std::ostream & | operator<< (std::ostream &out, const Message &msg) |
| std::ostream & | operator<< (std::ostream &out, const Q2W value) |
| std::ostream & | operator<< (std::ostream &out, const W2Q value) |
| std::ostream & | operator<< (std::ostream &out, const X2X value) |
| template<typename value_t > | |
| value_t | receive_item (Channel &channel, bool *more=nullptr) |
| void | send_item (Channel &channel, const char *item, bool more) |
| void | send_item (Channel &channel, const Message &item, bool more) |
| void | send_item (Channel &channel, const std::string &item, bool more) |
| template<typename T , typename std::enable_if< std::is_trivially_copyable< typename std::decay< T >::type >::value &&!std::is_pointer< typename std::decay< T >::type >::value, bool >::type = true> | |
| void | send_item (Channel &channel, const T &item, bool more) |
| int | wait_for_child (pid_t child_pid, bool may_throw, int retries_before_killing) |
| void | worker_loop () |
| The worker processes' event loop. | |
Variables | |
| static bool | worker_loop_running = false |
| using RooFit::MultiProcess::State = std::size_t |
| using RooFit::MultiProcess::Task = std::size_t |
|
strong |
| Enumerator | |
|---|---|
| enqueue | |
Definition at line 129 of file Messenger_decl.h.
|
strong |
| Enumerator | |
|---|---|
| dequeue_rejected | |
| dequeue_accepted | |
Definition at line 137 of file Messenger_decl.h.
|
strong |
| Enumerator | |
|---|---|
| dequeue | |
Definition at line 134 of file Messenger_decl.h.
|
strong |
| Enumerator | |
|---|---|
| ping | |
| pong | |
| initial_value | |
Definition at line 28 of file Messenger_decl.h.
| int RooFit::MultiProcess::chill_wait | ( | ) |
Definition at line 383 of file ProcessManager.cxx.
| pid_t RooFit::MultiProcess::fork_and_handle_errors | ( | ) |
Definition at line 101 of file ProcessManager.cxx.
| bool RooFit::MultiProcess::is_worker_loop_running | ( | ) |
Definition at line 35 of file worker.cxx.
| std::ostream & RooFit::MultiProcess::operator<< | ( | std::ostream & | out, |
| const M2Q | value ) |
Definition at line 259 of file Messenger.cxx.
|
inline |
| std::ostream & RooFit::MultiProcess::operator<< | ( | std::ostream & | out, |
| const Q2W | value ) |
Definition at line 279 of file Messenger.cxx.
| std::ostream & RooFit::MultiProcess::operator<< | ( | std::ostream & | out, |
| const W2Q | value ) |
Definition at line 269 of file Messenger.cxx.
| std::ostream & RooFit::MultiProcess::operator<< | ( | std::ostream & | out, |
| const X2X | value ) |
Definition at line 290 of file Messenger.cxx.
| void RooFit::MultiProcess::worker_loop | ( | ) |
The worker processes' event loop.
Asks the queue process for tasks, polls for incoming messages from other processes and handles them.
Definition at line 44 of file worker.cxx.
|
static |
Definition at line 33 of file worker.cxx.