em-hot_tub 1.0.1 → 1.1.0

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: 9a777b9f2e28be620a9a7934f3e555d26c379597
4
- data.tar.gz: 14e876430035560000988a26e9526103321860a0
3
+ metadata.gz: 3baea93f7f137aac634d59f43f1d4b638340b98b
4
+ data.tar.gz: 53ae3c31f3a66f649617219ec2a441693aaf3c27
5
5
  SHA512:
6
- metadata.gz: 912f916257ea10a04079e7c3d7456a046093309357995db86b985364de824e78211a0906795818fef94f86615fbd669fa79868785b05885b565e182731b4870e
7
- data.tar.gz: bba4e38005994627747e8e73030ffe9b6788a6be38c9f6ceec6a48ca9c5dcafc4cf5fa70fba1a4d82ebb5e700114e844ba49dfe1a83a904e5f9529c397aa130a
6
+ metadata.gz: ee660a9679abb4a511b3cce67734bfa133c7f88e9075a639e4500a7e7c290ef790917478efb1aecf9c14a3bc693921a31d856b0debbc2bea3f1e90e980e259b3
7
+ data.tar.gz: 6273cac3da577b3dbd1d47d388ab946df71e3b5a0e4e6a633a4f125a61bd0330be59710670c89d64f02266436224f55ed7f58a800379a2e95344185f0d94b2f5
data/README.md CHANGED
@@ -7,7 +7,7 @@ Eventmachine aware [HotTub](https://github.com/JoshMcKin/hot_tub)
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  ```ruby
10
- gem 'em-hot_tub', :require => 'em/hot_tub'
10
+ gem 'em-hot_tub', :require => 'em-hot_tub'
11
11
  ```
12
12
 
13
13
  And then execute:
@@ -10,6 +10,7 @@ module EventMachine::HotTub
10
10
  @mutex = EM::Synchrony::Thread::Mutex.new
11
11
  @cond = EM::Synchrony::Thread::ConditionVariable.new
12
12
  @kill_reaper = false
13
+ EM.add_shutdown_hook {shutdown!} unless @sessions_key
13
14
  end
14
15
  end
15
16
  end
@@ -9,6 +9,7 @@ module EventMachine::HotTub
9
9
  super opts
10
10
  @mutex = EM::Synchrony::Thread::Mutex.new
11
11
  @kill_reaper = false
12
+ EM.add_shutdown_hook {shutdown!}
12
13
  end
13
14
  end
14
15
  end
@@ -1,5 +1,5 @@
1
1
  module EventMachine
2
2
  module HotTub
3
- VERSION = "1.0.1"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
@@ -37,7 +37,6 @@ describe EventMachine::HotTub::Pool do
37
37
  c.run { |conn| status << conn.ahead(:keepalive => true).response_header.status}
38
38
  c.run { |conn| status << conn.head(:keepalive => true).response_header.status}
39
39
  expect(status).to eql([200,0,200])
40
- c.shutdown!
41
40
  end
42
41
  end
43
42
 
@@ -56,20 +55,12 @@ describe EventMachine::HotTub::Pool do
56
55
  fiber.resume
57
56
  fibers << fiber
58
57
  end
59
- loop do
60
- done = true
61
- fibers.each do |f|
62
- done = false if f.alive?
63
- end
64
- if done
65
- break
66
- else
67
- EM::Synchrony.sleep(0.01)
68
- end
58
+ # Wait until work is done
59
+ while fibers.detect(&:alive?)
60
+ EM::Synchrony.sleep(0.01)
69
61
  end
70
62
  expect(results.length).to eql(30) # make sure all responses are present
71
63
  expect(results.uniq).to eql([200])
72
- pool.shutdown!
73
64
  end
74
65
  end
75
66
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
  require 'uri'
3
3
  require 'time'
4
4
  describe EM::HotTub::Sessions do
5
-
5
+
6
6
  around(:each) do |example|
7
7
  EM.synchrony do
8
8
  example.run
@@ -80,38 +80,25 @@ describe EM::HotTub::Sessions do
80
80
  session.add(url) { EM::HttpRequest.new(url, {:max_size => 10}) }
81
81
  session.add(url2) { EM::HttpRequest.new(url2, {:max_size => 10}) }
82
82
 
83
-
84
83
  fibers = []
85
84
  results = []
86
- #kill_time = (Time.now + (60 * 11))
87
85
  30.times.each do
88
86
  fiber = Fiber.new do
89
- #while kill_time > Time.now
90
- session.run(url) { |clnt| results << clnt.get.response_header.status }
91
- session.run(url2) { |clnt| results << clnt.get.response_header.status }
92
- #end
87
+ session.run(url) { |clnt| results << clnt.get.response_header.status }
88
+ session.run(url2) { |clnt| results << clnt.get.response_header.status }
93
89
  end
94
90
  fiber.resume
95
91
  fibers << fiber
96
92
  end
97
93
 
98
- loop do
99
- working = false
100
-
101
- fibers.each do |f|
102
- working = true if f.alive?
103
- end
104
-
105
- if working
106
- EM::Synchrony.sleep(0.01)
107
- else
108
- break
109
- end
94
+ # Wait until work is done
95
+ while fibers.detect(&:alive?)
96
+ EM::Synchrony.sleep(0.01)
110
97
  end
98
+
111
99
  expect(results.length).to eql(60) # make sure all responses are present
112
100
  expect(results.uniq).to eql([200,0]) # Em http request gives 0 status randomly
113
101
  expect(session.instance_variable_get(:@_sessions).keys.length).to eql(2) # make sure sessions were created
114
- session.shutdown!
115
102
  end
116
103
  end
117
104
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: em-hot_tub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Mckinney