void zmq::pipe_t::hiccup () { // If termination is already under way do nothing. if (state != active) return; // We'll drop the pointer to the inpipe. From now on, the peer is // responsible for deallocating it. inpipe = NULL; // Create new inpipe. inpipe = new (std::nothrow) pipe_t::upipe_t (); alloc_assert (inpipe); in_active = true; // Notify the peer about the hiccup. send_hiccup (peer, (void*) inpipe); }
void zmq::pipe_t::hiccup () { // If termination is already under way do nothing. if (_state != active) return; // We'll drop the pointer to the inpipe. From now on, the peer is // responsible for deallocating it. // Create new inpipe. _in_pipe = _conflate ? static_cast<upipe_t *> (new (std::nothrow) ypipe_conflate_t<msg_t> ()) : new (std::nothrow) ypipe_t<msg_t, message_pipe_granularity> (); alloc_assert (_in_pipe); _in_active = true; // Notify the peer about the hiccup. send_hiccup (_peer, _in_pipe); }