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;
}