Qpid中客户端关闭与异步回调

Qpid使用异步回调机制实现通讯,提高通讯效率。 其中,客户端发收接收也是使用该机制。这样客户端须要退出时,可能IO线程正在回调,并使用须要析构的对象。所以在客户端退出时,须要确保析构的对象不会再被回调使用。 异步

Qpid客户端与链接相关的对象是: socket

                            IOThread(Poller) 线程

Connection ---> ConnectionImpl -->TCPConnector -->AsyncIO 对象

                                                            ConnectionHandler it

一、ConnectionImpl的shared_ptr在释放时,ConnectionImpl::release=>TCPConnector::close=>AsyncIO::queryWriteClose io

二、这些会引发TCPConnector的socketClosed回调。 效率

三、该回调再调用shutdownHandler->shutdown(),即ConnectionImpl中的shutdown,设置可结束标记。 sed

相关文章
相关标签/搜索