aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/vendor/mysql.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2006-12-01 05:37:56 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2006-12-01 05:37:56 +0000
commite8eb743ba679ccfe13e3cd15f140b539f1562340 (patch)
tree01fcd9d77f83859addec3c929f2227b0a08f775b /activerecord/lib/active_record/vendor/mysql.rb
parent9040f406820a9cd2d6a016fd2a7965d21445bbec (diff)
downloadrails-e8eb743ba679ccfe13e3cd15f140b539f1562340.tar.gz
rails-e8eb743ba679ccfe13e3cd15f140b539f1562340.tar.bz2
rails-e8eb743ba679ccfe13e3cd15f140b539f1562340.zip
Replace the elaborate reloading connection checking scheme, just fix the Ruby-based MySQL adapter, ye?
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5656 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/vendor/mysql.rb')
-rw-r--r--activerecord/lib/active_record/vendor/mysql.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/vendor/mysql.rb b/activerecord/lib/active_record/vendor/mysql.rb
index 0d8cc2efd8..58ebed7d4f 100644
--- a/activerecord/lib/active_record/vendor/mysql.rb
+++ b/activerecord/lib/active_record/vendor/mysql.rb
@@ -1173,8 +1173,14 @@ class << Mysql
def finalizer(net)
proc {
- net.clear
- net.write Mysql::COM_QUIT.chr
+ begin
+ net.clear
+ net.write Mysql::COM_QUIT.chr
+ net.close
+ rescue Error => error
+ # Swallow lost connection errors if connection is already closed.
+ raise unless error.errno == Error::CR_SERVER_LOST
+ end
}
end