diff options
author | Matthew Draper <matthew@trebex.net> | 2016-10-27 15:31:22 -0500 |
---|---|---|
committer | Matthew Draper <matthew@trebex.net> | 2016-10-27 15:31:22 -0500 |
commit | 007e50d8e5a900547471b6c4ec79d9d217682c5d (patch) | |
tree | aaf2b0ed25402f12cb714aba3946b0b343016366 /activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | |
parent | 928f46621c115c41802d9bbafa29df46c85ae68f (diff) | |
download | rails-007e50d8e5a900547471b6c4ec79d9d217682c5d.tar.gz rails-007e50d8e5a900547471b6c4ec79d9d217682c5d.tar.bz2 rails-007e50d8e5a900547471b6c4ec79d9d217682c5d.zip |
Permit loads while queries are running
A query may wait on a database-level lock, which could lead to a
deadlock between threads.
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index 8d0a1c0842..3bee0e2c62 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -215,7 +215,11 @@ module ActiveRecord # Executes the SQL statement in the context of this connection. def execute(sql, name = nil) - log(sql, name) { @connection.query(sql) } + log(sql, name) do + ActiveSupport::Dependencies.interlock.permit_concurrent_loads do + @connection.query(sql) + end + end end # Mysql2Adapter doesn't have to free a result after using it, but we use this method |