carnivore-http 0.3.2 → 0.3.4

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: 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