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

相關文章
相關標籤/搜索