fibered_mysql2 0.4.0.pre.tstarck.1 → 0.4.0.pre.tstarck.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4de2661b6a53134802496ea91ed73ad10623ee8459f1d4ecdb1ebdef6ea4f63
4
- data.tar.gz: 8846ea290e1ed8ccab648c55458809b63cb4a1ca737f405f0ece815b441104cf
3
+ metadata.gz: 5804c1cde27f4f2a0d3c222c5f49a207930c140ebc911e71b0b4655925b83917
4
+ data.tar.gz: dd33b3c3dfba5b858fc2b85832b2d65650661e53513311f9b99a62089dade8c4
5
5
  SHA512:
6
- metadata.gz: 68e08cebe9eec799298274fa1be5e3f83f7b896b5cbdebad3b3b5cb082fabb92388b80310cdb8bd376605374db8460dad4f9fde4746385d9e9d03f53278bf0a2
7
- data.tar.gz: 1ea97ac7495a0bc0085aaf4f45e226ad9110f879d893673ae646c48753f90f4c456156bb29ca63c36ddf827fff96a7aab934f80d43c27dbc534fd602db8472be
6
+ metadata.gz: 72b39a4bb7c035e1ab5d7ea7929f51c08d7fd0f7cac223d97444c3352e7bcd0f078d7146a5e2a0f446c1bae69774b0e5246dd77d425a83530e92be02f4215579
7
+ data.tar.gz: e4ef21a8acd88205f612d0fe23924527d4ed65f78d54ec5a397317c27ab8a1454f17b9979b830a5ffe90ab2478851114305af3706c958f3cbd559ece21adeeb5
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fibered_mysql2 (0.4.0.pre.tstarck.1)
4
+ fibered_mysql2 (0.4.0.pre.tstarck.2)
5
5
  em-synchrony (~> 1.0)
6
6
  rails (>= 7.0, < 7.2)
7
7
 
@@ -204,10 +204,6 @@ module FiberedMysql2
204
204
  def current_thread
205
205
  Fiber.current
206
206
  end
207
-
208
- def connection
209
- cached_connections[current_connection_id] ||= checkout
210
- end
211
207
  end
212
208
 
213
209
  if ::ActiveRecord.gem_version < "7.1"
@@ -243,6 +239,23 @@ module FiberedMysql2
243
239
  end
244
240
  super
245
241
  end
242
+
243
+ # Invoca patch to ensure that we are using the current fiber's connection.
244
+ def connection
245
+ # this is correctly done double-checked locking
246
+ # (ThreadSafe::Cache's lookups have volatile semantics)
247
+ if (result = cached_connections[current_connection_id])
248
+ result
249
+ else
250
+ synchronize do
251
+ if (result = cached_connections[current_connection_id])
252
+ result
253
+ else
254
+ cached_connections[current_connection_id] = checkout
255
+ end
256
+ end
257
+ end
258
+ end
246
259
  end
247
260
  end
248
261
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FiberedMysql2
4
- VERSION = "0.4.0.pre.tstarck.1"
4
+ VERSION = "0.4.0.pre.tstarck.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fibered_mysql2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0.pre.tstarck.1
4
+ version: 0.4.0.pre.tstarck.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Invoca Development