24namespace MultiProcess {
41 std::cout <<
"Had to send PID " <<
child_pid <<
" " << (-
patience + 1) <<
" SIGKILLs";
59 throw std::runtime_error(std::string(
"waitpid, errno ") + std::to_string(
errno));
69 }
else if (
e.num() ==
EINTR) {
85 "handle_zmq_ppoll_error is out of options to handle exception, caught ZMQ::ppoll_error_t had errno %d "
88 throw std::logic_error(buffer);
94std::tuple<std::vector<std::pair<size_t, zmq::event_flags>>,
bool>
97 std::size_t
tries = 0;
98 std::vector<std::pair<size_t, zmq::event_flags>>
poll_result;
114 printf(
"EINTR in careful_ppoll but no SIGTERM received, try %zu\n",
tries);
117 printf(
"EAGAIN in careful_ppoll (from either send or receive), try %zu\n",
tries);
124 printf(
"careful_ppoll reached maximum number of tries, %zu, please report as a bug\n",
tries);
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
static bool sigterm_received()
Wrapper class for polling ZeroMQ sockets.
std::tuple< std::vector< std::pair< size_t, zmq::event_flags > >, bool > careful_ppoll(ZeroMQPoller &poller, const sigset_t &ppoll_sigmask, std::size_t max_tries=2)
zmq_ppoll_error_response handle_zmq_ppoll_error(ZMQ::ppoll_error_t &e)
int wait_for_child(pid_t child_pid, bool may_throw, int retries_before_killing)
The namespace RooFit contains mostly switches that change the behaviour of functions of PDFs (or othe...