mongoid_connection_pool 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
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