13#ifndef ROOT_ROOFIT_MultiProcess_Messenger_decl
14#define ROOT_ROOFIT_MultiProcess_Messenger_decl
25namespace MultiProcess {
57 template <
typename T,
typename...
Ts>
59 template <
typename value_t>
62 template <
typename T,
typename...
Ts>
64 template <
typename value_t>
71 template <
typename T,
typename...
Ts>
73 template <
typename value_t>
77 template <
typename T,
typename...
Ts>
79 template <
typename value_t>
86 template <
typename T,
typename T2,
typename...
Ts>
88 template <
typename value_t>
93 template <
typename T,
typename T2,
typename...
Ts>
95 template <
typename value_t>
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
One endpoint of a full-duplex interprocess message pipe.
Manages the interprocess communication channels and wraps send and receive calls.
std::vector< Channel > qw_
void test_receive(X2X expected_ping_value, test_rcv_pipes rcv_pipe, std::size_t worker_id)
Channel & select_worker_channel_on_master()
On master: pick the worker channel to receive the next message from.
void test_connections(const ProcessManager &process_manager)
Test whether the channels between all processes are working.
value_t receive_from_master_on_worker(bool *more=nullptr)
void send_from_worker_to_master(T &&item)
specialization that sends the final part of a message
value_t receive_from_worker_on_master(bool *more=nullptr)
std::vector< Channel > mw_
std::pair< Poller, std::size_t > create_worker_poller()
Helper function that creates a poller for worker_loop()
value_t receive_from_queue_on_worker()
Messenger(ProcessManager &process_manager)
void send_from_queue_to_master()
std::pair< Poller, std::size_t > create_queue_poller()
Helper function that creates a poller for Queue::loop()
void send_from_master_to_queue()
void update_worker_channel_on_master(Channel &channel, bool more)
value_t receive_from_master_on_queue()
value_t receive_from_queue_on_master()
void debug_print(std::string s)
Function called from send and receive template functions in debug builds used to monitor the messages...
value_t receive_from_worker_on_queue(std::size_t this_worker_id)
std::size_t mw_next_poll_position_
void publish_from_master_to_workers(T &&item)
specialization that sends the final part of a message
Channel * mw_current_source_
void send_from_queue_to_worker(std::size_t this_worker_id)
void test_send(X2X ping_value, test_snd_pipes snd_pipe, std::size_t worker_id)
void send_from_worker_to_queue()
Waits for input on a set of registered Channels.
Fork processes for queue and workers.
std::ostream & operator<<(std::ostream &out, const Message &msg)
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...