Author: dreiss
Date: Tue Mar  9 05:19:27 2010
New Revision: 920665

URL: http://svn.apache.org/viewvc?rev=920665&view=rev
Log:
cpp: Exit TNonBlockingServer on memmory allocation failure

setrlimit causes bad_alloc exceptions, but undefined behavior occurs if
we don't exit.  It is not typical for libraries to call exit, but it is
not clear what other behavior is possible.

Modified:
    incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp

Modified: incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp
URL: 
http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp?rev=920665&r1=920664&r2=920665&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp (original)
+++ incubator/thrift/trunk/lib/cpp/src/server/TNonblockingServer.cpp Tue Mar  9 
05:19:27 2010
@@ -62,6 +62,9 @@ class TConnection::Task: public Runnable
       cerr << "TNonblockingServer client died: " << ttx.what() << endl;
     } catch (TException& x) {
       cerr << "TNonblockingServer exception: " << x.what() << endl;
+    } catch (bad_alloc&) {
+      cerr << "TNonblockingServer caught bad_alloc exception.";
+      exit(-1);
     } catch (...) {
       cerr << "TNonblockingServer uncaught exception." << endl;
     }


Reply via email to