diff options
author | Eliot Horowitz <eliot@10gen.com> | 2011-02-22 11:29:34 -0500 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2011-02-22 11:29:49 -0500 |
commit | 2c6e26690a5d9ee616ec953d1b75df47b1e388e1 (patch) | |
tree | e7b90fb070ab3abd3a16d818fadac957e16643f4 | |
parent | c2e985fdd6545c65de582fafeff4f070b6b5dec3 (diff) | |
download | mongo-2c6e26690a5d9ee616ec953d1b75df47b1e388e1.tar.gz |
slightly safer connection semaphore management
-rw-r--r-- | util/message_server_port.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/util/message_server_port.cpp b/util/message_server_port.cpp index 698359749e4..6d00628c8ad 100644 --- a/util/message_server_port.cpp +++ b/util/message_server_port.cpp @@ -32,10 +32,11 @@ namespace mongo { MessageHandler * handler; void threadRun( MessagingPort * inPort) { + TicketHolderReleaser connTicketReleaser( &connTicketHolder ); + assert( inPort ); setThreadName( "conn" ); - TicketHolderReleaser connTicketReleaser( &connTicketHolder ); auto_ptr<MessagingPort> p( inPort ); @@ -101,6 +102,7 @@ namespace mongo { boost::thread thr( boost::bind( &pms::threadRun , p ) ); } catch ( boost::thread_resource_error& ) { + connTicketHolder.release(); log() << "can't create new thread, closing connection" << endl; p->shutdown(); |