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: 4eb370db1decf12b4592bd69227d32caaf49f03c
4
- data.tar.gz: 7a36ee9d22077e96ec85ff63d88c098ce84be334
3
+ metadata.gz: 69d78c78604de9d695873035b133f3cde20fe572
4
+ data.tar.gz: 3cd12dbf3489078ca42582be4132ef595982bd9b
5
5
  SHA512:
6
- metadata.gz: 28663a2b586314764cd4813653785cf890d795cb00b0ffef220a5b56f868c05d4fd49dc6e0e407f5d083bbb27cb6b62ebdbf52de4f0dd31271091ae668ff2bab
7
- data.tar.gz: 4a59a7b89391b3c085fe532b95a697acd74a296d061c5171c8b1169c16c2b39892e62cbc3676092e4f9e616aa51013266790d9d39b6c896b88d18a407584603f
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
- if !@session_pool || !@session_pool[name]
13
- synchronize do
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).session_for_thread(Thread.current) ||
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
- unless (session = session_for_thread(Thread.current))
118
- synchronize do
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
- synchronize do
129
- @available.add session
130
- release(session)
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 @reserved_sessions[thread]
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
@@ -1,3 +1,3 @@
1
1
  module MongoidConnectionPool
2
- VERSION = "1.0.5"
2
+ VERSION = "1.0.6"
3
3
  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.5
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-02-22 00:00:00.000000000 Z
11
+ date: 2014-04-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
- requirement: !ruby/object:Gem::Requirement
15
+ version_requirements: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
- type: :development
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: '0'
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: 3.1.0
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.0
126
+ rubygems_version: 2.2.2
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: Provides connection pooling for Mongoid