From 13c503b73b4ecc8ce4a6e344f9ac15202985d686 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期二, 20 七月 2021 19:48:58 +0800
Subject: [PATCH] fix memory leak

---
 box/tcp_server.cpp |   23 ++++++++---------------
 1 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/box/tcp_server.cpp b/box/tcp_server.cpp
index ea23106..5cd8743 100644
--- a/box/tcp_server.cpp
+++ b/box/tcp_server.cpp
@@ -23,26 +23,19 @@
 
 using namespace std::chrono_literals;
 
-TcpServer::TcpServer(int port, CenterPtr pscenter) :
-    listener_(io(), tcp::endpoint(tcp::v6(), port)), pscenter_(pscenter)
-{
-	Accept();
-}
-
-TcpServer::~TcpServer() { Stop(); }
-
-void TcpServer::OnStop()
-{
-	listener_.close();
-}
-
 void TcpServer::Accept()
 {
 	listener_.async_accept([this](bserror_t ec, tcp::socket sock) {
 		if (!ec) {
-			LOG_INFO() << "server accept client";
+			LOG_TRACE() << "server accept client";
 			TcpReply1::Create(std::move(sock), pscenter_);
+			Accept();
+		} else {
+			// this is already destructed by now.
+			if (ec.value() != ECANCELED) {
+				LOG_WARNING() << "tcp server accept error: " << ec;
+				Accept();
+			}
 		}
-		Accept();
 	});
 }
\ No newline at end of file

--
Gitblit v1.8.0