Fix handling of accept() exceptions in threadedserver
authorMark Slee <mcslee@apache.org>
Thu, 8 Feb 2007 22:29:24 +0000 (22:29 +0000)
committerMark Slee <mcslee@apache.org>
Thu, 8 Feb 2007 22:29:24 +0000 (22:29 +0000)
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

lib/cpp/src/server/TThreadedServer.cpp

index a06117e..ee0198f 100644 (file)
@@ -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;
     }
   }