From: Mark Slee Date: Thu, 8 Feb 2007 22:29:24 +0000 (+0000) Subject: Fix handling of accept() exceptions in threadedserver X-Git-Tag: 0.2.0~1478 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=907e3d6345858f245331d9e6f6a98624b3eda624;p=common%2Fthrift.git Fix handling of accept() exceptions in threadedserver Reviewed By: threadz-aditya-tbr Notes: Propagating fix from TThreadPoolServer git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664994 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/lib/cpp/src/server/TThreadedServer.cpp b/lib/cpp/src/server/TThreadedServer.cpp index a06117ef..ee0198fb 100644 --- a/lib/cpp/src/server/TThreadedServer.cpp +++ b/lib/cpp/src/server/TThreadedServer.cpp @@ -102,6 +102,22 @@ void TThreadedServer::serve() { thread->start(); } catch (TTransportException& ttx) { + inputTransport->close(); + outputTransport->close(); + client->close(); + cerr << "TThreadedServer: TServerTransport died on accept: " << ttx.what() << endl; + continue; + } catch (TException& tx) { + inputTransport->close(); + outputTransport->close(); + client->close(); + cerr << "TThreadedServer: Caught TException: " << tx.what() << endl; + continue; + } catch (string s) { + inputTransport->close(); + outputTransport->close(); + client->close(); + cerr << "TThreadedServer: Unknown exception: " << s << endl; break; } }