carnivore-http 0.3.2 → 0.3.4

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: f97d68c500eef074443ebf72c97773168f512d7f
4
- data.tar.gz: dedb4fcb9cffa5cc30bbbd88eccd813b35d13f74
3
+ metadata.gz: 63346b352c23c47ec4008d4bb130eba33a7e745c
4
+ data.tar.gz: bf2331cfbc3ac0fd9b6035ae7179d6667cb06882
5
5
  SHA512:
6
- metadata.gz: fe81631a2bdb55e24137c5e67cb4307bc0b9f61641453da932b97e1f4af6baaa3eb69ace9aae3f754664f9e74b9b69868e72d43b832038d239656bd7a1b24a80
7
- data.tar.gz: b78fac28e0a7d289c48bda6999127dbad9fabc729df3c94d1c558a8f67b468bf723be4d5de5799b90c37e02bdd416fe43c5051c12fa4912ffce18f71899f805c
6
+ metadata.gz: cfed096ff158d9e4ef0b421ec915d9b50c330ff5e6560f5ab3dd0d55b6169813e15382e5d4a545ccbbdb8e53ace9b494705813f2be4a322b3036e34687043f8e
7
+ data.tar.gz: ad369a4c9638d35d9e875352ac9db2ae522d1b7cc37e3b96fe0e487a08951268c5579b6edd572c7c65bb48adee1c43a2348e5aa1084c508d94ef63b3fb7d970c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ # v0.3.4
2
+ * Use simple condition variable for response set signal
3
+
1
4
  # v0.3.2
2
5
  * Fix the retry delivery timer setup
3
6
  * Properly call parent class on termination
@@ -117,12 +117,19 @@ module Carnivore
117
117
  # Customized request
118
118
  class Request < Rack::Request
119
119
 
120
- include Zoidberg::SoftShell
121
-
122
- option :cache_signals
123
-
124
120
  # @return [Response]
125
121
  attr_reader :response_value
122
+ # @return [Mutex]
123
+ attr_reader :locker
124
+ # @return [ConditionVariable]
125
+ attr_reader :responder
126
+
127
+ # Override to setup synchronization support
128
+ def initialize(*_)
129
+ super
130
+ @locker = Mutex.new
131
+ @responder = ConditionVariable.new
132
+ end
126
133
 
127
134
  # Respond to the request
128
135
  #
@@ -131,7 +138,8 @@ module Carnivore
131
138
  # @return [TrueClass, FalseClass]
132
139
  def respond(code, string_or_args='')
133
140
  unless(@response_value)
134
- signal(:response, Response.new(code, string_or_args))
141
+ @response_value = Response.new(code, string_or_args)
142
+ locker.synchronize{ responder.signal }
135
143
  else
136
144
  raise 'Response was already set!'
137
145
  end
@@ -145,7 +153,7 @@ module Carnivore
145
153
  unless(@response_value)
146
154
  begin
147
155
  Timeout.timeout(timeout) do
148
- @response_value = wait_for(:response)
156
+ locker.synchronize{ responder.wait(locker) }
149
157
  end
150
158
  rescue Timeout::Error
151
159
  @response_value = Response.new(:internal_server_error, 'Timeout waiting for response')
@@ -1,6 +1,6 @@
1
1
  module Carnivore
2
2
  module Http
3
3
  # current library version
4
- VERSION = Gem::Version.new('0.3.2')
4
+ VERSION = Gem::Version.new('0.3.4')
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carnivore-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Roberts
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-24 00:00:00.000000000 Z
11
+ date: 2015-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: carnivore