From d176c2a0f3ad57181f26c3aab7d3c7006d4afeca Mon Sep 17 00:00:00 2001 From: Tyler Brock Date: Thu, 26 Apr 2012 13:53:21 -0400 Subject: [PATCH] RUBY-436 Handle IRB::Abort Exception --- lib/mongo/networking.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/mongo/networking.rb b/lib/mongo/networking.rb index 6ec1601..97cc7ea 100644 --- a/lib/mongo/networking.rb +++ b/lib/mongo/networking.rb @@ -137,9 +137,14 @@ module Mongo send_message_on_socket(packed_message, sock) result = receive(sock, request_id, exhaust) - rescue SystemStackError, NoMemoryError, SystemCallError, IRB::Abort => ex + rescue SystemStackError, NoMemoryError, SystemCallError => ex close raise ex + rescue Exception => ex + if defined?(IRB) + close if ex.class == IRB::Abort + end + raise ex ensure if should_checkin if command || read == :primary