Thrift 资源清理代码剖析

说明服务器

        Thrift服务器端采用的是Boost库的智能指针保存客户端的链接对象,所以当建立的服务线程正常退出的时候,对象会自动销毁,不须要手动调用任何的销毁函数socket


void TSocket::close() {
  if (socket_ != -1) {ide

#ifdef _WIN32
      shutdown(socket_, SD_BOTH);
      ::closesocket(socket_);
#else
      shutdown(socket_, SHUT_RDWR);
      ::close(socket_);
#endif函数

  }
  socket_ = -1;
}线程


客户端链接的套接字在这里进行了关闭指针


/**
 * Wraps a transport into a buffered one.
 *
 */
class TBufferedTransportFactory : public TTransportFactory {
 public:
  TBufferedTransportFactory() {}对象

  virtual ~TBufferedTransportFactory() {}get

  /**
   * Wraps the transport into a buffered one.
   */
  virtual boost::shared_ptr<TTransport> getTransport(boost::shared_ptr<TTransport> trans) {
    return boost::shared_ptr<TTransport>(new TBufferedTransport(trans));
  }it

};class

相关文章
相关标签/搜索