bool rpc_session::on_disconnected(bool is_write) { bool ret; if (set_disconnected()) { rpc_session_ptr sp = this; if (is_client()) { _net.on_client_session_disconnected(sp); } else { _net.on_server_session_disconnected(sp); } ret = true; } else { ret = false; } if (is_write) { clear_send_queue(false); } return ret; }
rpc_session::~rpc_session() { clear_send_queue(false); { utils::auto_lock<utils::ex_lock_nr> l(_lock); dassert(0 == _sending_msgs.size(), "sending queue is not cleared yet"); dassert(0 == _message_count.load(), "sending queue is not cleared yet"); } }
bool rpc_session::on_disconnected(bool is_write) { if (is_client()) { set_disconnected(); rpc_session_ptr sp = this; _net.on_client_session_disconnected(sp); } else { rpc_session_ptr sp = this; _net.on_server_session_disconnected(sp); } if (is_write) { clear_send_queue(false); } return true; }