mongoid_connection_pool 1.0.5 → 1.0.6
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69d78c78604de9d695873035b133f3cde20fe572
|
4
|
+
data.tar.gz: 3cd12dbf3489078ca42582be4132ef595982bd9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01465e5e98df34e18fbd2b55cc9596e96f4a353e0c0172c2f726cf69242e2db8891cf4bb94dd6484d34f33bb2b7b0dd6e0f4cdbd84d657dd3db4cf1f351447fb
|
7
|
+
data.tar.gz: 27a342a83a2acd3ca5c5a6f524bc8be7b1aa10fdf0084ae571726a20c9db8fe36bfca65636109c608645277a5faa86695b41dc27f92c29570b6ca2251538bcde
|
@@ -9,17 +9,8 @@ module Mongoid
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def session_pool(name=:default)
|
12
|
-
|
13
|
-
|
14
|
-
@session_pool ||= {}
|
15
|
-
@session_pool[name] ||= SessionPool.new(
|
16
|
-
:size => Config.session_pool_size,
|
17
|
-
:name => name,
|
18
|
-
:checkout_timeout => Config.session_checkout_timeout,
|
19
|
-
:reap_frequency => Config.session_reap_frequency)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
@session_pool[name]
|
12
|
+
synchronize { @session_pool ||= ThreadSafe::Cache.new }
|
13
|
+
@session_pool.fetch(name) { build_session_pool(name) }
|
23
14
|
end
|
24
15
|
|
25
16
|
def disconnect(thread=Thread.current)
|
@@ -40,7 +31,7 @@ module Mongoid
|
|
40
31
|
end
|
41
32
|
|
42
33
|
def with_name(name)
|
43
|
-
session_pool(name).
|
34
|
+
session_pool(name).session_for(Thread.current) ||
|
44
35
|
session_pool(name).checkout
|
45
36
|
end
|
46
37
|
|
@@ -56,6 +47,14 @@ module Mongoid
|
|
56
47
|
session_pool(name).checkin_from_thread thread
|
57
48
|
true
|
58
49
|
end
|
50
|
+
|
51
|
+
def build_session_pool(name)
|
52
|
+
@session_pool[name] = SessionPool.new(
|
53
|
+
:size => Config.session_pool_size,
|
54
|
+
:name => name,
|
55
|
+
:checkout_timeout => Config.session_checkout_timeout,
|
56
|
+
:reap_frequency => Config.session_reap_frequency)
|
57
|
+
end
|
59
58
|
end
|
60
59
|
end
|
61
60
|
end
|
@@ -114,22 +114,24 @@ module Mongoid
|
|
114
114
|
end
|
115
115
|
|
116
116
|
def checkout
|
117
|
-
|
118
|
-
|
117
|
+
synchronize do
|
118
|
+
unless (session = session_for(Thread.current))
|
119
119
|
session = get_session
|
120
120
|
reserve(session)
|
121
121
|
end
|
122
|
+
session
|
122
123
|
end
|
123
|
-
session
|
124
124
|
end
|
125
125
|
|
126
126
|
# Returns a session back to the available pool
|
127
127
|
def checkin(session)
|
128
|
-
|
129
|
-
|
130
|
-
|
128
|
+
if session
|
129
|
+
synchronize do
|
130
|
+
@available.add session
|
131
|
+
release(session)
|
132
|
+
end
|
133
|
+
true
|
131
134
|
end
|
132
|
-
true
|
133
135
|
end
|
134
136
|
|
135
137
|
def clear(thread=nil)
|
@@ -159,7 +161,7 @@ module Mongoid
|
|
159
161
|
end
|
160
162
|
|
161
163
|
def checkin_from_thread(thread)
|
162
|
-
checkin
|
164
|
+
checkin session_for(thread)
|
163
165
|
true
|
164
166
|
end
|
165
167
|
|
@@ -174,10 +176,6 @@ module Mongoid
|
|
174
176
|
end
|
175
177
|
end
|
176
178
|
|
177
|
-
def session_for_thread(thread)
|
178
|
-
@reserved_sessions[thread]
|
179
|
-
end
|
180
|
-
|
181
179
|
def session_for(thread)
|
182
180
|
@reserved_sessions[thread]
|
183
181
|
end
|
metadata
CHANGED
@@ -1,31 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid_connection_pool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Goff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
|
-
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
|
-
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
23
21
|
requirements:
|
24
22
|
- - "~>"
|
25
23
|
- !ruby/object:Gem::Version
|
26
24
|
version: '1.3'
|
25
|
+
type: :development
|
26
|
+
prerelease: false
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
29
34
|
requirement: !ruby/object:Gem::Requirement
|
30
35
|
requirements:
|
31
36
|
- - ">="
|
@@ -33,13 +38,13 @@ dependencies:
|
|
33
38
|
version: '0'
|
34
39
|
type: :development
|
35
40
|
prerelease: false
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
36
43
|
version_requirements: !ruby/object:Gem::Requirement
|
37
44
|
requirements:
|
38
45
|
- - ">="
|
39
46
|
- !ruby/object:Gem::Version
|
40
47
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rspec
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
44
49
|
requirements:
|
45
50
|
- - ">="
|
@@ -47,13 +52,13 @@ dependencies:
|
|
47
52
|
version: '0'
|
48
53
|
type: :development
|
49
54
|
prerelease: false
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mongoid
|
50
57
|
version_requirements: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- - "
|
59
|
+
- - "~>"
|
53
60
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: mongoid
|
61
|
+
version: 3.1.0
|
57
62
|
requirement: !ruby/object:Gem::Requirement
|
58
63
|
requirements:
|
59
64
|
- - "~>"
|
@@ -61,13 +66,13 @@ dependencies:
|
|
61
66
|
version: 3.1.0
|
62
67
|
type: :runtime
|
63
68
|
prerelease: false
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: thread_safe
|
64
71
|
version_requirements: !ruby/object:Gem::Requirement
|
65
72
|
requirements:
|
66
73
|
- - "~>"
|
67
74
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: thread_safe
|
75
|
+
version: 0.1.3
|
71
76
|
requirement: !ruby/object:Gem::Requirement
|
72
77
|
requirements:
|
73
78
|
- - "~>"
|
@@ -75,11 +80,6 @@ dependencies:
|
|
75
80
|
version: 0.1.3
|
76
81
|
type: :runtime
|
77
82
|
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 0.1.3
|
83
83
|
description: Provides connection pooling for Mongoid
|
84
84
|
email:
|
85
85
|
- cpuguy83@gmail.com
|
@@ -123,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
123
|
version: '0'
|
124
124
|
requirements: []
|
125
125
|
rubyforge_project:
|
126
|
-
rubygems_version: 2.2.
|
126
|
+
rubygems_version: 2.2.2
|
127
127
|
signing_key:
|
128
128
|
specification_version: 4
|
129
129
|
summary: Provides connection pooling for Mongoid
|