mongoid_connection_pool 1.0.4 → 1.0.5

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: af30e7fe5080cef0ed8640c322486fc14752172c
4
- data.tar.gz: 35b4ae73ad57ae936572ea230aee5ad74e7c9c6b
3
+ metadata.gz: 4eb370db1decf12b4592bd69227d32caaf49f03c
4
+ data.tar.gz: 7a36ee9d22077e96ec85ff63d88c098ce84be334
5
5
  SHA512:
6
- metadata.gz: 8a930a2324268e11bc7bbece3f0975cc967057c98736a2ec0fd6d0afcb6b502a29b88c112eb00ad4f192f77d4df524ab24337f87a1f12ed6bdbea425f11babc4
7
- data.tar.gz: c86ced6234965db97d60add4c322228e6a07ed5c05ff1d6b0274aa8df81db1cb756c24f0d46db63e9e353d4de813963443759caf5598162fe5de1a52a31d9c1c
6
+ metadata.gz: 28663a2b586314764cd4813653785cf890d795cb00b0ffef220a5b56f868c05d4fd49dc6e0e407f5d083bbb27cb6b62ebdbf52de4f0dd31271091ae668ff2bab
7
+ data.tar.gz: 4a59a7b89391b3c085fe532b95a697acd74a296d061c5171c8b1169c16c2b39892e62cbc3676092e4f9e616aa51013266790d9d39b6c896b88d18a407584603f
data/.travis.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - rbx-19mode
3
+ - rbx
4
4
  - 2.0.0
5
5
  - 1.9.3
6
- - jruby-19mode
6
+ - jruby
@@ -205,6 +205,8 @@ module Mongoid
205
205
  end
206
206
 
207
207
  def get_session
208
+ # always double check the reaper is running, if we got forked after it starts we dont have a thread anymore
209
+ @reaper.run unless @reaper.alive?
208
210
  if session = @available.poll
209
211
  session
210
212
  elsif @sessions.size < @size
@@ -233,14 +235,22 @@ module Mongoid
233
235
  class Reaper
234
236
  attr_reader :pool
235
237
  attr_reader :frequency
238
+ attr_reader :reaper
239
+
236
240
  def initialize(frequency, pool)
237
241
  @frequency = frequency
238
242
  @pool = pool
239
243
  end
240
244
 
245
+ def alive?
246
+ return true unless frequency
247
+ # under rbx 2.2.4 this now works, also works correctly under mri at latest patch levels
248
+ reaper.alive?
249
+ end
250
+
241
251
  def run
242
252
  return unless frequency
243
- Thread.new(frequency, pool) do |t, p|
253
+ @reaper = Thread.new(frequency, pool) do |t, p|
244
254
  while true
245
255
  sleep t
246
256
  p.reap
@@ -1,3 +1,3 @@
1
1
  module MongoidConnectionPool
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.5"
3
3
  end
@@ -105,6 +105,31 @@ describe Mongoid::Sessions::SessionPool do
105
105
 
106
106
  end
107
107
 
108
+ describe '.checkout' do
109
+
110
+ before do
111
+ session_pool.clear
112
+ end
113
+
114
+ let(:session) do
115
+ session_pool.checkout
116
+ end
117
+
118
+ it 'Restarts the Reaper when it dies' do
119
+ # checkin session
120
+ session_pool.checkin(session)
121
+ # kill the reap and wait for it to die
122
+ session_pool.reaper.reaper.kill
123
+ session_pool.reaper.reaper.join
124
+ # reaper should now be dead
125
+ session_pool.reaper.reaper.alive?.should be_false
126
+ session_pool.checkout
127
+ # checkout should restart the reaper
128
+ session_pool.reaper.alive?.should be_true
129
+ end
130
+
131
+ end
132
+
108
133
  describe '.session_for' do
109
134
 
110
135
  before do
metadata CHANGED
@@ -1,83 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid_connection_pool
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Goff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-08 00:00:00.000000000 Z
11
+ date: 2014-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mongoid
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 3.1.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.1.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: thread_safe
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.1.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.1.3
83
83
  description: Provides connection pooling for Mongoid
@@ -87,8 +87,8 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
- - .gitignore
91
- - .travis.yml
90
+ - ".gitignore"
91
+ - ".travis.yml"
92
92
  - Gemfile
93
93
  - LICENSE.txt
94
94
  - README.md
@@ -113,17 +113,17 @@ require_paths:
113
113
  - lib
114
114
  required_ruby_version: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - '>='
116
+ - - ">="
117
117
  - !ruby/object:Gem::Version
118
118
  version: '0'
119
119
  required_rubygems_version: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - '>='
121
+ - - ">="
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  requirements: []
125
125
  rubyforge_project:
126
- rubygems_version: 2.0.3
126
+ rubygems_version: 2.2.0
127
127
  signing_key:
128
128
  specification_version: 4
129
129
  summary: Provides connection pooling for Mongoid