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 +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/carnivore-http/app.rb +14 -6
- data/lib/carnivore-http/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63346b352c23c47ec4008d4bb130eba33a7e745c
|
4
|
+
data.tar.gz: bf2331cfbc3ac0fd9b6035ae7179d6667cb06882
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfed096ff158d9e4ef0b421ec915d9b50c330ff5e6560f5ab3dd0d55b6169813e15382e5d4a545ccbbdb8e53ace9b494705813f2be4a322b3036e34687043f8e
|
7
|
+
data.tar.gz: ad369a4c9638d35d9e875352ac9db2ae522d1b7cc37e3b96fe0e487a08951268c5579b6edd572c7c65bb48adee1c43a2348e5aa1084c508d94ef63b3fb7d970c
|
data/CHANGELOG.md
CHANGED
data/lib/carnivore-http/app.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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')
|
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.
|
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-
|
11
|
+
date: 2015-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: carnivore
|