rainbows 3.0.0 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.wrongdoc.yml +2 -2
- data/Documentation/comparison.haml +6 -6
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +16 -128
- data/README +2 -3
- data/Rakefile +3 -3
- data/examples/reverse_proxy.ru +9 -0
- data/lib/rainbows.rb +14 -6
- data/lib/rainbows/base.rb +0 -1
- data/lib/rainbows/const.rb +1 -10
- data/lib/rainbows/coolio/client.rb +8 -4
- data/lib/rainbows/coolio/core.rb +0 -3
- data/lib/rainbows/coolio/thread_client.rb +2 -2
- data/lib/rainbows/coolio_fiber_spawn.rb +6 -6
- data/lib/rainbows/dev_fd_response.rb +16 -9
- data/lib/rainbows/epoll.rb +43 -0
- data/lib/rainbows/epoll/client.rb +232 -0
- data/lib/rainbows/epoll/response_chunk_pipe.rb +18 -0
- data/lib/rainbows/epoll/response_pipe.rb +32 -0
- data/lib/rainbows/epoll/server.rb +31 -0
- data/lib/rainbows/error.rb +1 -9
- data/lib/rainbows/ev_core.rb +12 -12
- data/lib/rainbows/ev_core/cap_input.rb +1 -1
- data/lib/rainbows/event_machine.rb +0 -6
- data/lib/rainbows/event_machine/client.rb +3 -3
- data/lib/rainbows/event_machine/response_chunk_pipe.rb +5 -7
- data/lib/rainbows/event_machine/response_pipe.rb +7 -8
- data/lib/rainbows/fiber/base.rb +2 -2
- data/lib/rainbows/fiber/io.rb +21 -63
- data/lib/rainbows/fiber/io/methods.rb +1 -1
- data/lib/rainbows/http_server.rb +4 -4
- data/lib/rainbows/join_threads.rb +18 -0
- data/lib/rainbows/max_body.rb +2 -1
- data/lib/rainbows/max_body/wrapper.rb +1 -1
- data/lib/rainbows/never_block/event_machine.rb +2 -2
- data/lib/rainbows/process_client.rb +9 -1
- data/lib/rainbows/queue_pool.rb +2 -2
- data/lib/rainbows/response.rb +1 -1
- data/lib/rainbows/rev_fiber_spawn.rb +4 -4
- data/lib/rainbows/revactor/client.rb +4 -5
- data/lib/rainbows/revactor/proxy.rb +1 -1
- data/lib/rainbows/reverse_proxy.rb +189 -0
- data/lib/rainbows/reverse_proxy/coolio.rb +61 -0
- data/lib/rainbows/reverse_proxy/ev_client.rb +39 -0
- data/lib/rainbows/reverse_proxy/event_machine.rb +46 -0
- data/lib/rainbows/reverse_proxy/multi_thread.rb +7 -0
- data/lib/rainbows/reverse_proxy/synchronous.rb +21 -0
- data/lib/rainbows/sendfile.rb +1 -1
- data/lib/rainbows/sync_close.rb +2 -2
- data/lib/rainbows/thread_pool.rb +1 -1
- data/lib/rainbows/writer_thread_pool.rb +1 -1
- data/lib/rainbows/xepoll.rb +24 -0
- data/lib/rainbows/xepoll/client.rb +45 -0
- data/pkg.mk +171 -0
- data/rainbows.gemspec +2 -4
- data/t/GNUmakefile +4 -0
- data/t/bin/content-md5-put +1 -0
- data/t/kgio-pipe-response.ru +9 -1
- data/t/rack-fiber_pool/app.ru +6 -1
- data/t/simple-http_Epoll.ru +9 -0
- data/t/simple-http_XEpoll.ru +9 -0
- data/t/t0014-config-conflict.sh +5 -3
- data/t/t0023-sendfile-byte-range.sh +1 -7
- data/t/t0034-pipelined-pipe-response.sh +2 -1
- data/t/t0035-kgio-pipe-response.sh +0 -7
- data/t/t0041-optional-pool-size.sh +51 -0
- data/t/t0050-response-body-close-has-env.sh +2 -1
- data/t/t0104-rack-input-limit-tiny.sh +6 -4
- data/t/t0105-rack-input-limit-bigger.sh +6 -4
- data/t/t0106-rack-input-keepalive.sh +2 -0
- data/t/t0107-rack-input-limit-zero.sh +60 -0
- data/t/t0113-rewindable-input-false.sh +1 -0
- data/t/t0114-rewindable-input-true.sh +1 -0
- data/t/t0202-async-response-one-oh.sh +56 -0
- data/t/test_isolate.rb +5 -2
- metadata +42 -37
- data/lib/rainbows/rack_input.rb +0 -17
@@ -33,6 +33,8 @@ req_pipelined () {
|
|
33
33
|
|
34
34
|
reload () {
|
35
35
|
t_begin 'reloading Rainbows! to ensure writeout' && {
|
36
|
+
# ensure worker is loaded before HUP
|
37
|
+
curl -s http://$listen/ >/dev/null
|
36
38
|
# reload to ensure everything is flushed
|
37
39
|
kill -HUP $rainbows_pid
|
38
40
|
test xSTART = x"$(cat $fifo)"
|
@@ -85,7 +87,6 @@ check_log pipe
|
|
85
87
|
|
86
88
|
t_begin "enable sendfile gem" && {
|
87
89
|
echo "require 'sendfile'" >> $unicorn_config
|
88
|
-
curl http://$listen/ >/dev/null # ensure worker is loaded before HUP
|
89
90
|
}
|
90
91
|
|
91
92
|
reload
|
@@ -6,11 +6,13 @@ req_curl_chunked_upload_err_check
|
|
6
6
|
t_plan 18 "rack.input client_max_body_size tiny"
|
7
7
|
|
8
8
|
t_begin "setup and startup" && {
|
9
|
-
rtmpfiles curl_out curl_err
|
9
|
+
rtmpfiles curl_out curl_err
|
10
10
|
rainbows_setup $model
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
ed -s $unicorn_config <<EOF
|
12
|
+
,s/client_max_body_size.*/client_max_body_size 256/
|
13
|
+
w
|
14
|
+
EOF
|
15
|
+
rainbows -D sha1-random-size.ru -c $unicorn_config
|
14
16
|
rainbows_wait_start
|
15
17
|
}
|
16
18
|
|
@@ -6,11 +6,13 @@ req_curl_chunked_upload_err_check
|
|
6
6
|
t_plan 10 "rack.input client_max_body_size bigger"
|
7
7
|
|
8
8
|
t_begin "setup and startup" && {
|
9
|
-
rtmpfiles curl_out curl_err
|
9
|
+
rtmpfiles curl_out curl_err
|
10
10
|
rainbows_setup $model
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
ed -s $unicorn_config <<EOF
|
12
|
+
,s/client_max_body_size.*/client_max_body_size 10485760/
|
13
|
+
w
|
14
|
+
EOF
|
15
|
+
rainbows -D sha1-random-size.ru -c $unicorn_config
|
14
16
|
rainbows_wait_start
|
15
17
|
}
|
16
18
|
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
. ./test-lib.sh
|
3
|
+
req_curl_chunked_upload_err_check
|
4
|
+
|
5
|
+
t_plan 6 "rack.input client_max_body_size zero"
|
6
|
+
|
7
|
+
t_begin "setup and startup" && {
|
8
|
+
rtmpfiles curl_out curl_err
|
9
|
+
rainbows_setup $model
|
10
|
+
ed -s $unicorn_config <<EOF
|
11
|
+
,s/client_max_body_size.*/client_max_body_size 0/
|
12
|
+
w
|
13
|
+
EOF
|
14
|
+
rainbows -D sha1-random-size.ru -c $unicorn_config
|
15
|
+
rainbows_wait_start
|
16
|
+
empty_sha1=da39a3ee5e6b4b0d3255bfef95601890afd80709
|
17
|
+
}
|
18
|
+
|
19
|
+
t_begin "regular request" && {
|
20
|
+
curl -vsSf -H Expect: http://$listen/ > $curl_out 2> $curl_err
|
21
|
+
dbgcat curl_err
|
22
|
+
dbgcat curl_out
|
23
|
+
test x"$(cat $curl_out)" = x$empty_sha1
|
24
|
+
}
|
25
|
+
|
26
|
+
t_begin "chunked request" && {
|
27
|
+
curl -vsSf -T- < /dev/null -H Expect: \
|
28
|
+
http://$listen/ > $curl_out 2> $curl_err
|
29
|
+
dbgcat curl_err
|
30
|
+
dbgcat curl_out
|
31
|
+
test x"$(cat $curl_out)" = x$empty_sha1
|
32
|
+
}
|
33
|
+
|
34
|
+
t_begin "small input chunked" && {
|
35
|
+
rm -f $ok
|
36
|
+
echo | \
|
37
|
+
curl -vsSf -T- -H Expect: \
|
38
|
+
http://$listen/ > $curl_out 2> $curl_err || > $ok
|
39
|
+
dbgcat curl_err
|
40
|
+
dbgcat curl_out
|
41
|
+
fgrep 413 $curl_err
|
42
|
+
test -e $ok
|
43
|
+
}
|
44
|
+
|
45
|
+
t_begin "small input content-length" && {
|
46
|
+
rm -f $ok
|
47
|
+
echo > $tmp
|
48
|
+
curl -vsSf -T $tmp -H Expect: \
|
49
|
+
http://$listen/ > $curl_out 2> $curl_err || > $ok
|
50
|
+
fgrep 413 $curl_err
|
51
|
+
dbgcat curl_err
|
52
|
+
dbgcat curl_out
|
53
|
+
test -e $ok
|
54
|
+
}
|
55
|
+
|
56
|
+
t_begin "shutdown" && {
|
57
|
+
kill $rainbows_pid
|
58
|
+
}
|
59
|
+
|
60
|
+
t_done
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
CONFIG_RU=${CONFIG_RU-'async-response.ru'}
|
3
|
+
. ./test-lib.sh
|
4
|
+
|
5
|
+
skip_models Base WriterThreadPool WriterThreadSpawn
|
6
|
+
|
7
|
+
t_plan 6 "async HTTP/1.0 response for $model"
|
8
|
+
|
9
|
+
t_begin "setup and start" && {
|
10
|
+
rainbows_setup
|
11
|
+
rtmpfiles a b c a_err b_err c_err
|
12
|
+
# can't load Rack::Lint here since it'll cause Rev to slurp
|
13
|
+
rainbows -E none -D $CONFIG_RU -c $unicorn_config
|
14
|
+
rainbows_wait_start
|
15
|
+
}
|
16
|
+
|
17
|
+
t_begin "send async requests off in parallel" && {
|
18
|
+
t0=$(date +%s)
|
19
|
+
curl="curl -0 --no-buffer -vsSf http://$listen/"
|
20
|
+
( $curl 2>> $a_err | utee $a) &
|
21
|
+
( $curl 2>> $b_err | utee $b) &
|
22
|
+
( $curl 2>> $c_err | utee $c) &
|
23
|
+
wait
|
24
|
+
t1=$(date +%s)
|
25
|
+
}
|
26
|
+
|
27
|
+
t_begin "ensure elapsed requests were processed in parallel" && {
|
28
|
+
elapsed=$(( $t1 - $t0 ))
|
29
|
+
echo "elapsed=$elapsed < 30"
|
30
|
+
test $elapsed -lt 30
|
31
|
+
}
|
32
|
+
|
33
|
+
t_begin "termination signal sent" && {
|
34
|
+
kill $rainbows_pid
|
35
|
+
}
|
36
|
+
|
37
|
+
dbgcat a
|
38
|
+
dbgcat b
|
39
|
+
dbgcat c
|
40
|
+
dbgcat a_err
|
41
|
+
|
42
|
+
t_begin "no errors from curl" && {
|
43
|
+
if grep -i Transfer-Encoding $a_err $b_err $c_err
|
44
|
+
then
|
45
|
+
die "Unexpected Transfer-Encoding: header"
|
46
|
+
fi
|
47
|
+
for i in $a_err $b_err $c_err
|
48
|
+
do
|
49
|
+
grep 'Connection: close' $i
|
50
|
+
done
|
51
|
+
}
|
52
|
+
|
53
|
+
dbgcat r_err
|
54
|
+
t_begin "no errors in stderr" && check_stderr
|
55
|
+
|
56
|
+
t_done
|
data/t/test_isolate.rb
CHANGED
@@ -16,8 +16,9 @@ $stdout.reopen($stderr)
|
|
16
16
|
lock = File.open(__FILE__, "rb")
|
17
17
|
lock.flock(File::LOCK_EX)
|
18
18
|
Isolate.now!(opts) do
|
19
|
-
gem 'unicorn', '3.
|
19
|
+
gem 'unicorn', '3.4.0'
|
20
20
|
gem 'kcar', '0.1.2'
|
21
|
+
gem 'raindrops', '0.4.1'
|
21
22
|
|
22
23
|
if engine == "ruby"
|
23
24
|
gem 'sendfile', '1.0.0' # next Rubinius should support this
|
@@ -31,8 +32,10 @@ Isolate.now!(opts) do
|
|
31
32
|
|
32
33
|
if defined?(::Fiber) && engine == "ruby"
|
33
34
|
gem 'revactor', '0.1.5'
|
34
|
-
gem 'rack-fiber_pool', '0.9.
|
35
|
+
gem 'rack-fiber_pool', '0.9.1'
|
35
36
|
end
|
37
|
+
|
38
|
+
gem 'sleepy_penguin', '1.4.0' if RUBY_PLATFORM =~ /linux/
|
36
39
|
end
|
37
40
|
|
38
41
|
$stdout.reopen(old_out)
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rainbows
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 3
|
8
|
-
- 0
|
9
|
-
- 0
|
10
|
-
version: 3.0.0
|
4
|
+
prerelease:
|
5
|
+
version: 3.1.0
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Rainbows! hackers
|
@@ -15,7 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-
|
13
|
+
date: 2011-02-11 00:00:00 +00:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
@@ -26,10 +21,6 @@ dependencies:
|
|
26
21
|
requirements:
|
27
22
|
- - ~>
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 13
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 1
|
33
24
|
version: "1.1"
|
34
25
|
type: :runtime
|
35
26
|
version_requirements: *id001
|
@@ -41,11 +32,7 @@ dependencies:
|
|
41
32
|
requirements:
|
42
33
|
- - ~>
|
43
34
|
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
segments:
|
46
|
-
- 3
|
47
|
-
- 3
|
48
|
-
version: "3.3"
|
35
|
+
version: "3.4"
|
49
36
|
type: :runtime
|
50
37
|
version_requirements: *id002
|
51
38
|
- !ruby/object:Gem::Dependency
|
@@ -56,11 +43,6 @@ dependencies:
|
|
56
43
|
requirements:
|
57
44
|
- - ~>
|
58
45
|
- !ruby/object:Gem::Version
|
59
|
-
hash: 7
|
60
|
-
segments:
|
61
|
-
- 3
|
62
|
-
- 0
|
63
|
-
- 0
|
64
46
|
version: 3.0.0
|
65
47
|
type: :development
|
66
48
|
version_requirements: *id003
|
@@ -72,11 +54,7 @@ dependencies:
|
|
72
54
|
requirements:
|
73
55
|
- - ~>
|
74
56
|
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
segments:
|
77
|
-
- 1
|
78
|
-
- 1
|
79
|
-
version: "1.1"
|
57
|
+
version: "1.5"
|
80
58
|
type: :development
|
81
59
|
version_requirements: *id004
|
82
60
|
description: |-
|
@@ -116,6 +94,11 @@ extra_rdoc_files:
|
|
116
94
|
- lib/rainbows/coolio_thread_spawn.rb
|
117
95
|
- lib/rainbows/coolio_thread_spawn/client.rb
|
118
96
|
- lib/rainbows/dev_fd_response.rb
|
97
|
+
- lib/rainbows/epoll.rb
|
98
|
+
- lib/rainbows/epoll/client.rb
|
99
|
+
- lib/rainbows/epoll/response_chunk_pipe.rb
|
100
|
+
- lib/rainbows/epoll/response_pipe.rb
|
101
|
+
- lib/rainbows/epoll/server.rb
|
119
102
|
- lib/rainbows/error.rb
|
120
103
|
- lib/rainbows/ev_core.rb
|
121
104
|
- lib/rainbows/ev_core/cap_input.rb
|
@@ -144,6 +127,7 @@ extra_rdoc_files:
|
|
144
127
|
- lib/rainbows/http_parser.rb
|
145
128
|
- lib/rainbows/http_response.rb
|
146
129
|
- lib/rainbows/http_server.rb
|
130
|
+
- lib/rainbows/join_threads.rb
|
147
131
|
- lib/rainbows/max_body.rb
|
148
132
|
- lib/rainbows/max_body/rewindable_wrapper.rb
|
149
133
|
- lib/rainbows/max_body/wrapper.rb
|
@@ -152,7 +136,6 @@ extra_rdoc_files:
|
|
152
136
|
- lib/rainbows/never_block/event_machine.rb
|
153
137
|
- lib/rainbows/process_client.rb
|
154
138
|
- lib/rainbows/queue_pool.rb
|
155
|
-
- lib/rainbows/rack_input.rb
|
156
139
|
- lib/rainbows/response.rb
|
157
140
|
- lib/rainbows/rev.rb
|
158
141
|
- lib/rainbows/rev_fiber_spawn.rb
|
@@ -163,6 +146,12 @@ extra_rdoc_files:
|
|
163
146
|
- lib/rainbows/revactor/client/methods.rb
|
164
147
|
- lib/rainbows/revactor/client/tee_socket.rb
|
165
148
|
- lib/rainbows/revactor/proxy.rb
|
149
|
+
- lib/rainbows/reverse_proxy.rb
|
150
|
+
- lib/rainbows/reverse_proxy/coolio.rb
|
151
|
+
- lib/rainbows/reverse_proxy/ev_client.rb
|
152
|
+
- lib/rainbows/reverse_proxy/event_machine.rb
|
153
|
+
- lib/rainbows/reverse_proxy/multi_thread.rb
|
154
|
+
- lib/rainbows/reverse_proxy/synchronous.rb
|
166
155
|
- lib/rainbows/sendfile.rb
|
167
156
|
- lib/rainbows/server_token.rb
|
168
157
|
- lib/rainbows/socket_proxy.rb
|
@@ -176,6 +165,8 @@ extra_rdoc_files:
|
|
176
165
|
- lib/rainbows/writer_thread_pool/client.rb
|
177
166
|
- lib/rainbows/writer_thread_spawn.rb
|
178
167
|
- lib/rainbows/writer_thread_spawn/client.rb
|
168
|
+
- lib/rainbows/xepoll.rb
|
169
|
+
- lib/rainbows/xepoll/client.rb
|
179
170
|
- LATEST
|
180
171
|
- LICENSE
|
181
172
|
- NEWS
|
@@ -216,6 +207,7 @@ files:
|
|
216
207
|
- TUNING
|
217
208
|
- Test_Suite
|
218
209
|
- bin/rainbows
|
210
|
+
- examples/reverse_proxy.ru
|
219
211
|
- lib/rainbows.rb
|
220
212
|
- lib/rainbows/actor_spawn.rb
|
221
213
|
- lib/rainbows/app_pool.rb
|
@@ -240,6 +232,11 @@ files:
|
|
240
232
|
- lib/rainbows/coolio_thread_spawn.rb
|
241
233
|
- lib/rainbows/coolio_thread_spawn/client.rb
|
242
234
|
- lib/rainbows/dev_fd_response.rb
|
235
|
+
- lib/rainbows/epoll.rb
|
236
|
+
- lib/rainbows/epoll/client.rb
|
237
|
+
- lib/rainbows/epoll/response_chunk_pipe.rb
|
238
|
+
- lib/rainbows/epoll/response_pipe.rb
|
239
|
+
- lib/rainbows/epoll/server.rb
|
243
240
|
- lib/rainbows/error.rb
|
244
241
|
- lib/rainbows/ev_core.rb
|
245
242
|
- lib/rainbows/ev_core/cap_input.rb
|
@@ -268,6 +265,7 @@ files:
|
|
268
265
|
- lib/rainbows/http_parser.rb
|
269
266
|
- lib/rainbows/http_response.rb
|
270
267
|
- lib/rainbows/http_server.rb
|
268
|
+
- lib/rainbows/join_threads.rb
|
271
269
|
- lib/rainbows/max_body.rb
|
272
270
|
- lib/rainbows/max_body/rewindable_wrapper.rb
|
273
271
|
- lib/rainbows/max_body/wrapper.rb
|
@@ -276,7 +274,6 @@ files:
|
|
276
274
|
- lib/rainbows/never_block/event_machine.rb
|
277
275
|
- lib/rainbows/process_client.rb
|
278
276
|
- lib/rainbows/queue_pool.rb
|
279
|
-
- lib/rainbows/rack_input.rb
|
280
277
|
- lib/rainbows/response.rb
|
281
278
|
- lib/rainbows/rev.rb
|
282
279
|
- lib/rainbows/rev_fiber_spawn.rb
|
@@ -287,6 +284,12 @@ files:
|
|
287
284
|
- lib/rainbows/revactor/client/methods.rb
|
288
285
|
- lib/rainbows/revactor/client/tee_socket.rb
|
289
286
|
- lib/rainbows/revactor/proxy.rb
|
287
|
+
- lib/rainbows/reverse_proxy.rb
|
288
|
+
- lib/rainbows/reverse_proxy/coolio.rb
|
289
|
+
- lib/rainbows/reverse_proxy/ev_client.rb
|
290
|
+
- lib/rainbows/reverse_proxy/event_machine.rb
|
291
|
+
- lib/rainbows/reverse_proxy/multi_thread.rb
|
292
|
+
- lib/rainbows/reverse_proxy/synchronous.rb
|
290
293
|
- lib/rainbows/sendfile.rb
|
291
294
|
- lib/rainbows/server_token.rb
|
292
295
|
- lib/rainbows/socket_proxy.rb
|
@@ -300,8 +303,11 @@ files:
|
|
300
303
|
- lib/rainbows/writer_thread_pool/client.rb
|
301
304
|
- lib/rainbows/writer_thread_spawn.rb
|
302
305
|
- lib/rainbows/writer_thread_spawn/client.rb
|
306
|
+
- lib/rainbows/xepoll.rb
|
307
|
+
- lib/rainbows/xepoll/client.rb
|
303
308
|
- local.mk.sample
|
304
309
|
- man/man1/rainbows.1
|
310
|
+
- pkg.mk
|
305
311
|
- rainbows.gemspec
|
306
312
|
- setup.rb
|
307
313
|
- t/.gitignore
|
@@ -345,6 +351,7 @@ files:
|
|
345
351
|
- t/simple-http_CoolioFiberSpawn.ru
|
346
352
|
- t/simple-http_CoolioThreadPool.ru
|
347
353
|
- t/simple-http_CoolioThreadSpawn.ru
|
354
|
+
- t/simple-http_Epoll.ru
|
348
355
|
- t/simple-http_EventMachine.ru
|
349
356
|
- t/simple-http_FiberPool.ru
|
350
357
|
- t/simple-http_FiberSpawn.ru
|
@@ -358,6 +365,7 @@ files:
|
|
358
365
|
- t/simple-http_ThreadSpawn.ru
|
359
366
|
- t/simple-http_WriterThreadPool.ru
|
360
367
|
- t/simple-http_WriterThreadSpawn.ru
|
368
|
+
- t/simple-http_XEpoll.ru
|
361
369
|
- t/sleep.ru
|
362
370
|
- t/t0000-simple-http.sh
|
363
371
|
- t/t0000.ru
|
@@ -395,6 +403,7 @@ files:
|
|
395
403
|
- t/t0034-pipelined-pipe-response.sh
|
396
404
|
- t/t0035-kgio-pipe-response.sh
|
397
405
|
- t/t0040-keepalive_requests-setting.sh
|
406
|
+
- t/t0041-optional-pool-size.sh
|
398
407
|
- t/t0050-response-body-close-has-env.sh
|
399
408
|
- t/t0100-rack-input-hammer-chunked.sh
|
400
409
|
- t/t0100-rack-input-hammer-content-length.sh
|
@@ -404,12 +413,14 @@ files:
|
|
404
413
|
- t/t0104-rack-input-limit-tiny.sh
|
405
414
|
- t/t0105-rack-input-limit-bigger.sh
|
406
415
|
- t/t0106-rack-input-keepalive.sh
|
416
|
+
- t/t0107-rack-input-limit-zero.sh
|
407
417
|
- t/t0113-rewindable-input-false.sh
|
408
418
|
- t/t0113.ru
|
409
419
|
- t/t0114-rewindable-input-true.sh
|
410
420
|
- t/t0114.ru
|
411
421
|
- t/t0200-async-response.sh
|
412
422
|
- t/t0201-async-response-no-autochunk.sh
|
423
|
+
- t/t0202-async-response-one-oh.sh
|
413
424
|
- t/t0300-async_sinatra.sh
|
414
425
|
- t/t0400-em-async-app.sh
|
415
426
|
- t/t0401-em-async-tailer.sh
|
@@ -444,7 +455,7 @@ rdoc_options:
|
|
444
455
|
- -t
|
445
456
|
- Rainbows! - Unicorn for sleepy apps and slow clients
|
446
457
|
- -W
|
447
|
-
- http://
|
458
|
+
- http://bogomips.org/rainbows.git/tree/%s
|
448
459
|
require_paths:
|
449
460
|
- lib
|
450
461
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -452,23 +463,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
452
463
|
requirements:
|
453
464
|
- - ">="
|
454
465
|
- !ruby/object:Gem::Version
|
455
|
-
hash: 3
|
456
|
-
segments:
|
457
|
-
- 0
|
458
466
|
version: "0"
|
459
467
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
460
468
|
none: false
|
461
469
|
requirements:
|
462
470
|
- - ">="
|
463
471
|
- !ruby/object:Gem::Version
|
464
|
-
hash: 3
|
465
|
-
segments:
|
466
|
-
- 0
|
467
472
|
version: "0"
|
468
473
|
requirements: []
|
469
474
|
|
470
475
|
rubyforge_project: rainbows
|
471
|
-
rubygems_version: 1.
|
476
|
+
rubygems_version: 1.5.0
|
472
477
|
signing_key:
|
473
478
|
specification_version: 3
|
474
479
|
summary: "- Unicorn for sleepy apps and slow clients"
|