void zmq::socket_base_t::terminated (pipe_t *pipe_) { // Notify the specific socket type about the pipe termination. xterminated (pipe_); // Remove the pipe from the list of attached pipes and confirm its // termination if we are already shutting down. pipes.erase (pipe_); if (is_terminating ()) unregister_term_ack (); }
void zmq::socket_base_t::terminated (pipe_t *pipe_) { // Notify the specific socket type about the pipe termination. xterminated (pipe_); // Remove pipe from inproc pipes for (inprocs_t::iterator it = inprocs.begin(); it != inprocs.end(); ++it) { if (it->second == pipe_) { inprocs.erase(it); break; } } // Remove the pipe from the list of attached pipes and confirm its // termination if we are already shutting down. pipes.erase (pipe_); if (is_terminating ()) unregister_term_ack (); }