10 zmq::mailbox_safe_t::mailbox_safe_t (mutex_t *sync_) : _sync (sync_)
15 const bool ok =
_cpipe.check_read ();
19 zmq::mailbox_safe_t::~mailbox_safe_t ()
29 void zmq::mailbox_safe_t::add_signaler (signaler_t *signaler_)
31 _signalers.push_back (signaler_);
34 void zmq::mailbox_safe_t::remove_signaler (signaler_t *signaler_)
37 const std::vector<zmq::signaler_t *>::iterator
end = _signalers.end ();
38 const std::vector<signaler_t *>::iterator
it =
39 std::find (_signalers.begin (),
end, signaler_);
42 _signalers.erase (
it);
45 void zmq::mailbox_safe_t::clear_signalers ()
53 _cpipe.write (cmd_,
false);
54 const bool ok = _cpipe.flush ();
57 _cond_var.broadcast ();
59 for (std::vector<signaler_t *>::iterator
it = _signalers.begin (),
60 end = _signalers.end ();
69 int zmq::mailbox_safe_t::recv (command_t *cmd_,
int timeout_)
72 if (_cpipe.read (cmd_))
82 const int rc = _cond_var.wait (_sync, timeout_);
90 const bool ok = _cpipe.read (cmd_);