fibered_mysql2 0.1.4 → 0.1.5.pre.ga.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +25 -0
- data/.github/workflows/release.yml +38 -0
- data/.ruby-version +1 -0
- data/Appraisals +0 -4
- data/CHANGELOG.md +5 -0
- data/Gemfile +3 -4
- data/Gemfile.lock +16 -19
- data/README.md +1 -1
- data/fibered_mysql2.gemspec +1 -1
- data/gemfiles/rails_5.gemfile +3 -3
- data/gemfiles/rails_6.gemfile +3 -3
- data/lib/fibered_mysql2/fibered_database_connection_pool.rb +69 -3
- data/lib/fibered_mysql2/version.rb +1 -1
- metadata +14 -13
- data/.travis.yml +0 -12
- data/gemfiles/rails_4.gemfile +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ce1936ef559c3317a017cafacb9e1fafec1cf01c5bda075303479f97a0287cd
|
4
|
+
data.tar.gz: a475f56c870d6fd8e56f92d07a73ea6a73752d79f280eb796bf951c9990ce9ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdb30f2c76ade268e36e8adbddbee09b01fb2a7ff82611158d04d3c60f8e483f7e61de589f33c362bce0fe9fffcfc34abe0498e0e2dac618d2d830263a193373
|
7
|
+
data.tar.gz: 2e4aa4b1ae2b9a809641f2a41e74dab8d780279cc9f3f5cf8352117b03b34273ea005d12258abfcb06540f046844597af682f9d44f4a6ee6f63b4f5db8c2e2cc
|
@@ -0,0 +1,25 @@
|
|
1
|
+
---
|
2
|
+
name: FiberedMySQL2 Gem Build
|
3
|
+
on: [push, pull_request]
|
4
|
+
jobs:
|
5
|
+
test:
|
6
|
+
name: Unit Tests
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
strategy:
|
9
|
+
fail-fast: false
|
10
|
+
matrix:
|
11
|
+
ruby: [2.5, 2.6, 2.7, '3.0', 3.1]
|
12
|
+
gemfile:
|
13
|
+
- Gemfile
|
14
|
+
- gemfiles/rails_5.gemfile
|
15
|
+
- gemfiles/rails_6.gemfile
|
16
|
+
env:
|
17
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v2
|
20
|
+
- uses: ruby/setup-ruby@v1
|
21
|
+
with:
|
22
|
+
ruby-version: ${{ matrix.ruby }}
|
23
|
+
bundler: 2.2.29
|
24
|
+
bundler-cache: true
|
25
|
+
- run: bundle exec rspec
|
@@ -0,0 +1,38 @@
|
|
1
|
+
---
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
tags:
|
5
|
+
- 'v*'
|
6
|
+
- '!v*.pre*'
|
7
|
+
|
8
|
+
name: Create Release
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
build:
|
12
|
+
name: Create Release
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
steps:
|
15
|
+
- name: Get version from tag
|
16
|
+
id: tag_name
|
17
|
+
shell: bash
|
18
|
+
run: |
|
19
|
+
echo ::set-output name=current_version::${GITHUB_REF#refs/tags/v}
|
20
|
+
- name: Checkout code
|
21
|
+
uses: actions/checkout@v2
|
22
|
+
- name: Get Changelog Entry
|
23
|
+
id: changelog_reader
|
24
|
+
uses: mindsers/changelog-reader-action@v1
|
25
|
+
with:
|
26
|
+
version: ${{ steps.tag_name.outputs.current_version }}
|
27
|
+
path: ./CHANGELOG.md
|
28
|
+
- name: Create Release
|
29
|
+
id: create_release
|
30
|
+
uses: actions/create-release@v1
|
31
|
+
env:
|
32
|
+
GITHUB_TOKEN: ${{ secrets.GEM_RELEASE_GIT_TOKEN }}
|
33
|
+
with:
|
34
|
+
tag_name: ${{ github.ref }}
|
35
|
+
release_name: Release ${{ github.ref }}
|
36
|
+
body: ${{ steps.changelog_reader.outputs.log_entry }}
|
37
|
+
draft: false
|
38
|
+
prerelease: false
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.7.5
|
data/Appraisals
CHANGED
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,11 @@ Inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
5
5
|
Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## [0.1.5] - Unreleased
|
8
|
+
### Changed
|
9
|
+
- Upgraded Bundler to 2.2.29 and Ruby to 2.7.5. Removed support for Rails 4.
|
10
|
+
- Modified FiberedMysql2::FiberedConditionVariable class to ensure compatibility with newer Ruby versions.
|
11
|
+
|
7
12
|
## [0.1.4] - 2021-06-25
|
8
13
|
### Fixed
|
9
14
|
- Disable the ConnectionPool::Reaper in Rails 5 and 6 as it was in 4. This is important since it is
|
data/Gemfile
CHANGED
@@ -6,12 +6,11 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
|
6
6
|
gemspec
|
7
7
|
|
8
8
|
gem 'appraisal'
|
9
|
-
gem 'bundler', '~> 1.8'
|
10
9
|
gem 'coveralls', require: false
|
11
|
-
gem '
|
12
|
-
gem '
|
10
|
+
gem 'mysql2', '~> 0.4.5'
|
11
|
+
gem 'nokogiri', '< 1.13'
|
13
12
|
gem 'pry', '~> 0.13'
|
14
13
|
gem 'pry-byebug', '~> 3.9'
|
15
14
|
gem 'rails', '< 6.1'
|
16
|
-
gem 'rake', '~>
|
15
|
+
gem 'rake', '~> 13.0'
|
17
16
|
gem 'rspec', '~> 3.0'
|
data/Gemfile.lock
CHANGED
@@ -1,16 +1,9 @@
|
|
1
|
-
GIT
|
2
|
-
remote: git@github.com:Invoca/mimemagic
|
3
|
-
revision: b084ce8d50c080f5a312156498be21a541fe72a2
|
4
|
-
ref: b084ce8d50c080f5a312156498be21a541fe72a2
|
5
|
-
specs:
|
6
|
-
mimemagic (0.3.5)
|
7
|
-
|
8
1
|
PATH
|
9
2
|
remote: .
|
10
3
|
specs:
|
11
|
-
fibered_mysql2 (0.1.
|
4
|
+
fibered_mysql2 (0.1.5.pre.ga.0)
|
12
5
|
em-synchrony (~> 1.0)
|
13
|
-
rails (>=
|
6
|
+
rails (>= 5.2, < 7)
|
14
7
|
|
15
8
|
GEM
|
16
9
|
remote: https://rubygems.org/
|
@@ -104,19 +97,24 @@ GEM
|
|
104
97
|
marcel (0.3.3)
|
105
98
|
mimemagic (~> 0.3.2)
|
106
99
|
method_source (1.0.0)
|
100
|
+
mimemagic (0.3.10)
|
101
|
+
nokogiri (~> 1)
|
102
|
+
rake
|
107
103
|
mini_mime (1.0.2)
|
108
|
-
mini_portile2 (2.
|
104
|
+
mini_portile2 (2.6.1)
|
109
105
|
minitest (5.14.3)
|
110
|
-
mysql2 (0.4.
|
106
|
+
mysql2 (0.4.10)
|
111
107
|
nio4r (2.5.4)
|
112
|
-
nokogiri (1.
|
113
|
-
mini_portile2 (~> 2.
|
108
|
+
nokogiri (1.12.5)
|
109
|
+
mini_portile2 (~> 2.6.1)
|
110
|
+
racc (~> 1.4)
|
114
111
|
pry (0.13.1)
|
115
112
|
coderay (~> 1.1)
|
116
113
|
method_source (~> 1.0)
|
117
114
|
pry-byebug (3.9.0)
|
118
115
|
byebug (~> 11.0)
|
119
116
|
pry (~> 0.13.0)
|
117
|
+
racc (1.6.0)
|
120
118
|
rack (2.2.3)
|
121
119
|
rack-test (1.1.0)
|
122
120
|
rack (>= 1.0, < 3)
|
@@ -146,7 +144,7 @@ GEM
|
|
146
144
|
method_source
|
147
145
|
rake (>= 0.8.7)
|
148
146
|
thor (>= 0.20.3, < 2.0)
|
149
|
-
rake (
|
147
|
+
rake (13.0.6)
|
150
148
|
rspec (3.9.0)
|
151
149
|
rspec-core (~> 3.9.0)
|
152
150
|
rspec-expectations (~> 3.9.0)
|
@@ -191,16 +189,15 @@ PLATFORMS
|
|
191
189
|
|
192
190
|
DEPENDENCIES
|
193
191
|
appraisal
|
194
|
-
bundler (~> 1.8)
|
195
192
|
coveralls
|
196
193
|
fibered_mysql2!
|
197
|
-
|
198
|
-
|
194
|
+
mysql2 (~> 0.4.5)
|
195
|
+
nokogiri (< 1.13)
|
199
196
|
pry (~> 0.13)
|
200
197
|
pry-byebug (~> 3.9)
|
201
198
|
rails (< 6.1)
|
202
|
-
rake (~>
|
199
|
+
rake (~> 13.0)
|
203
200
|
rspec (~> 3.0)
|
204
201
|
|
205
202
|
BUNDLED WITH
|
206
|
-
|
203
|
+
2.2.29
|
data/README.md
CHANGED
data/fibered_mysql2.gemspec
CHANGED
data/gemfiles/rails_5.gemfile
CHANGED
@@ -3,13 +3,13 @@
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
5
|
gem "appraisal"
|
6
|
-
gem "bundler", "~>
|
6
|
+
gem "bundler", "~> 2.2"
|
7
7
|
gem "coveralls", require: false
|
8
|
-
gem "mysql2", "0.4.5"
|
8
|
+
gem "mysql2", "~> 0.4.5"
|
9
9
|
gem "pry", "~> 0.13"
|
10
10
|
gem "pry-byebug", "~> 3.9"
|
11
|
+
gem "rails", "~> 5.2"
|
11
12
|
gem "rake", "~> 10.0"
|
12
13
|
gem "rspec", "~> 3.0"
|
13
|
-
gem "rails", "~> 5.2"
|
14
14
|
|
15
15
|
gemspec path: "../"
|
data/gemfiles/rails_6.gemfile
CHANGED
@@ -3,13 +3,13 @@
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
5
|
gem "appraisal"
|
6
|
-
gem "bundler", "~>
|
6
|
+
gem "bundler", "~> 2.2"
|
7
7
|
gem "coveralls", require: false
|
8
|
-
gem "mysql2", "0.4.5"
|
8
|
+
gem "mysql2", "~> 0.4.5"
|
9
9
|
gem "pry", "~> 0.13"
|
10
10
|
gem "pry-byebug", "~> 3.9"
|
11
|
+
gem "rails", "~> 6.0.0"
|
11
12
|
gem "rake", "~> 10.0"
|
12
13
|
gem "rspec", "~> 3.0"
|
13
|
-
gem "rails", "~> 6.0.0"
|
14
14
|
|
15
15
|
gemspec path: "../"
|
@@ -12,7 +12,73 @@ require 'fibered_mysql2/fibered_mutex_with_waiter_priority'
|
|
12
12
|
EventMachine::Synchrony::Thread::Mutex.prepend(FiberedMysql2::FiberedMutexWithWaiterPriority)
|
13
13
|
|
14
14
|
module FiberedMysql2
|
15
|
-
class FiberedConditionVariable
|
15
|
+
class FiberedConditionVariable
|
16
|
+
EXCEPTION_NEVER = {Exception => :never}.freeze
|
17
|
+
EXCEPTION_IMMEDIATE = {Exception => :immediate}.freeze
|
18
|
+
|
19
|
+
#
|
20
|
+
# FIXME: This isn't documented in Nutshell.
|
21
|
+
#
|
22
|
+
# Since MonitorMixin.new_cond returns a ConditionVariable, and the example
|
23
|
+
# above calls while_wait and signal, this class should be documented.
|
24
|
+
#
|
25
|
+
class Timeout < Exception; end
|
26
|
+
|
27
|
+
#
|
28
|
+
# Releases the lock held in the associated monitor and waits; reacquires the lock on wakeup.
|
29
|
+
#
|
30
|
+
# If +timeout+ is given, this method returns after +timeout+ seconds passed,
|
31
|
+
# even if no other thread doesn't signal.
|
32
|
+
#
|
33
|
+
def wait(timeout = nil)
|
34
|
+
Thread.handle_interrupt(EXCEPTION_NEVER) do
|
35
|
+
@monitor.__send__(:mon_check_owner)
|
36
|
+
count = @monitor.__send__(:mon_exit_for_cond)
|
37
|
+
begin
|
38
|
+
Thread.handle_interrupt(EXCEPTION_IMMEDIATE) do
|
39
|
+
@cond.wait(@monitor.instance_variable_get(:@mon_mutex), timeout)
|
40
|
+
end
|
41
|
+
return true
|
42
|
+
ensure
|
43
|
+
@monitor.__send__(:mon_enter_for_cond, count)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
#
|
49
|
+
# Calls wait repeatedly while the given block yields a truthy value.
|
50
|
+
#
|
51
|
+
def wait_while
|
52
|
+
while yield
|
53
|
+
wait
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
#
|
58
|
+
# Calls wait repeatedly until the given block yields a truthy value.
|
59
|
+
#
|
60
|
+
def wait_until
|
61
|
+
until yield
|
62
|
+
wait
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
#
|
67
|
+
# Wakes up the first thread in line waiting for this lock.
|
68
|
+
#
|
69
|
+
def signal
|
70
|
+
@monitor.__send__(:mon_check_owner)
|
71
|
+
@cond.signal
|
72
|
+
end
|
73
|
+
|
74
|
+
#
|
75
|
+
# Wakes up all threads waiting for this lock.
|
76
|
+
#
|
77
|
+
def broadcast
|
78
|
+
@monitor.__send__(:mon_check_owner)
|
79
|
+
@cond.broadcast
|
80
|
+
end
|
81
|
+
|
16
82
|
def initialize(monitor)
|
17
83
|
@monitor = monitor
|
18
84
|
@cond = EM::Synchrony::Thread::ConditionVariable.new
|
@@ -90,8 +156,6 @@ module FiberedMysql2
|
|
90
156
|
FiberedConditionVariable.new(self)
|
91
157
|
end
|
92
158
|
|
93
|
-
private
|
94
|
-
|
95
159
|
# Initializes the FiberedMonitorMixin after being included in a class
|
96
160
|
def mon_initialize
|
97
161
|
@mon_owner = nil
|
@@ -103,6 +167,8 @@ module FiberedMysql2
|
|
103
167
|
@mon_owner == Fiber.current or raise FiberError, "current fiber not owner"
|
104
168
|
end
|
105
169
|
|
170
|
+
private
|
171
|
+
|
106
172
|
def mon_enter_for_cond(count)
|
107
173
|
@mon_owner = Fiber.current
|
108
174
|
@mon_count = count
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fibered_mysql2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5.pre.ga.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Invoca Development
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: em-synchrony
|
@@ -30,7 +30,7 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '5.2'
|
34
34
|
- - "<"
|
35
35
|
- !ruby/object:Gem::Version
|
36
36
|
version: '7'
|
@@ -40,20 +40,22 @@ dependencies:
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '
|
43
|
+
version: '5.2'
|
44
44
|
- - "<"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '7'
|
47
|
-
description:
|
47
|
+
description:
|
48
48
|
email:
|
49
49
|
- development@invoca.com
|
50
50
|
executables: []
|
51
51
|
extensions: []
|
52
52
|
extra_rdoc_files: []
|
53
53
|
files:
|
54
|
+
- ".github/workflows/build.yml"
|
55
|
+
- ".github/workflows/release.yml"
|
54
56
|
- ".gitignore"
|
55
57
|
- ".rspec"
|
56
|
-
- ".
|
58
|
+
- ".ruby-version"
|
57
59
|
- Appraisals
|
58
60
|
- CHANGELOG.md
|
59
61
|
- Gemfile
|
@@ -63,7 +65,6 @@ files:
|
|
63
65
|
- bin/console
|
64
66
|
- bin/setup
|
65
67
|
- fibered_mysql2.gemspec
|
66
|
-
- gemfiles/rails_4.gemfile
|
67
68
|
- gemfiles/rails_5.gemfile
|
68
69
|
- gemfiles/rails_6.gemfile
|
69
70
|
- lib/active_record/connection_adapters/fibered_mysql2_adapter.rb
|
@@ -77,7 +78,7 @@ licenses: []
|
|
77
78
|
metadata:
|
78
79
|
allowed_push_host: https://rubygems.org
|
79
80
|
homepage_uri: https://github.com/Invoca/fibered_mysql2
|
80
|
-
post_install_message:
|
81
|
+
post_install_message:
|
81
82
|
rdoc_options: []
|
82
83
|
require_paths:
|
83
84
|
- lib
|
@@ -88,12 +89,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
88
89
|
version: '0'
|
89
90
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
91
|
requirements:
|
91
|
-
- - "
|
92
|
+
- - ">"
|
92
93
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
94
|
+
version: 1.3.1
|
94
95
|
requirements: []
|
95
|
-
rubygems_version: 3.
|
96
|
-
signing_key:
|
96
|
+
rubygems_version: 3.1.6
|
97
|
+
signing_key:
|
97
98
|
specification_version: 4
|
98
99
|
summary: An adapter for fibered mysql2
|
99
100
|
test_files: []
|
data/.travis.yml
DELETED
data/gemfiles/rails_4.gemfile
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "appraisal"
|
6
|
-
gem "bundler", "~> 1.8"
|
7
|
-
gem "coveralls", require: false
|
8
|
-
gem "mysql2", "0.4.5"
|
9
|
-
gem "pry", "~> 0.13"
|
10
|
-
gem "pry-byebug", "~> 3.9"
|
11
|
-
gem "rake", "~> 10.0"
|
12
|
-
gem "rspec", "~> 3.0"
|
13
|
-
gem "rails", "~> 4.2"
|
14
|
-
|
15
|
-
gemspec path: "../"
|