rainbows 2.0.1 → 2.1.0
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.
- data/.document +1 -0
- data/.gitignore +1 -0
- data/.manifest +46 -18
- data/.wrongdoc.yml +8 -0
- data/ChangeLog +849 -374
- data/Documentation/comparison.haml +26 -21
- data/FAQ +6 -0
- data/GIT-VERSION-GEN +1 -1
- data/GNUmakefile +23 -65
- data/LATEST +27 -0
- data/NEWS +53 -26
- data/README +7 -7
- data/Rakefile +1 -98
- data/Summary +0 -7
- data/TODO +2 -2
- data/lib/rainbows/app_pool.rb +2 -1
- data/lib/rainbows/base.rb +1 -0
- data/lib/rainbows/configurator.rb +9 -0
- data/lib/rainbows/const.rb +1 -1
- data/lib/rainbows/coolio/client.rb +191 -0
- data/lib/rainbows/coolio/core.rb +25 -0
- data/lib/rainbows/{rev → coolio}/deferred_chunk_response.rb +3 -2
- data/lib/rainbows/{rev → coolio}/deferred_response.rb +3 -3
- data/lib/rainbows/coolio/heartbeat.rb +20 -0
- data/lib/rainbows/{rev → coolio}/master.rb +2 -3
- data/lib/rainbows/{rev → coolio}/sendfile.rb +1 -1
- data/lib/rainbows/coolio/server.rb +11 -0
- data/lib/rainbows/coolio/thread_client.rb +36 -0
- data/lib/rainbows/coolio.rb +45 -0
- data/lib/rainbows/coolio_fiber_spawn.rb +26 -0
- data/lib/rainbows/coolio_support.rb +9 -0
- data/lib/rainbows/coolio_thread_pool/client.rb +8 -0
- data/lib/rainbows/coolio_thread_pool/watcher.rb +14 -0
- data/lib/rainbows/coolio_thread_pool.rb +57 -0
- data/lib/rainbows/coolio_thread_spawn/client.rb +8 -0
- data/lib/rainbows/coolio_thread_spawn.rb +27 -0
- data/lib/rainbows/dev_fd_response.rb +6 -2
- data/lib/rainbows/ev_core/cap_input.rb +3 -2
- data/lib/rainbows/ev_core.rb +13 -3
- data/lib/rainbows/event_machine/client.rb +124 -0
- data/lib/rainbows/event_machine/response_pipe.rb +1 -2
- data/lib/rainbows/event_machine/server.rb +15 -0
- data/lib/rainbows/event_machine.rb +13 -137
- data/lib/rainbows/fiber/base.rb +6 -7
- data/lib/rainbows/fiber/body.rb +4 -2
- data/lib/rainbows/fiber/coolio/heartbeat.rb +15 -0
- data/lib/rainbows/fiber/{rev → coolio}/methods.rb +4 -5
- data/lib/rainbows/fiber/{rev → coolio}/server.rb +1 -1
- data/lib/rainbows/fiber/{rev → coolio}/sleeper.rb +2 -2
- data/lib/rainbows/fiber/coolio.rb +12 -0
- data/lib/rainbows/fiber/io/methods.rb +6 -0
- data/lib/rainbows/fiber/io.rb +8 -10
- data/lib/rainbows/fiber/queue.rb +24 -30
- data/lib/rainbows/fiber.rb +7 -4
- data/lib/rainbows/fiber_pool.rb +1 -1
- data/lib/rainbows/http_server.rb +9 -2
- data/lib/rainbows/max_body.rb +3 -1
- data/lib/rainbows/never_block/core.rb +15 -0
- data/lib/rainbows/never_block/event_machine.rb +8 -3
- data/lib/rainbows/never_block.rb +37 -70
- data/lib/rainbows/process_client.rb +3 -6
- data/lib/rainbows/rack_input.rb +17 -0
- data/lib/rainbows/response/body.rb +18 -19
- data/lib/rainbows/response.rb +1 -1
- data/lib/rainbows/rev.rb +21 -43
- data/lib/rainbows/rev_fiber_spawn.rb +4 -19
- data/lib/rainbows/rev_thread_pool.rb +21 -75
- data/lib/rainbows/rev_thread_spawn.rb +18 -36
- data/lib/rainbows/revactor/body.rb +4 -1
- data/lib/rainbows/revactor/tee_socket.rb +44 -0
- data/lib/rainbows/revactor.rb +13 -48
- data/lib/rainbows/socket_proxy.rb +24 -0
- data/lib/rainbows/sync_close.rb +37 -0
- data/lib/rainbows/thread_pool.rb +66 -70
- data/lib/rainbows/thread_spawn.rb +40 -50
- data/lib/rainbows/thread_timeout.rb +33 -27
- data/lib/rainbows/timed_read.rb +5 -1
- data/lib/rainbows/worker_yield.rb +16 -0
- data/lib/rainbows/writer_thread_pool/client.rb +19 -0
- data/lib/rainbows/writer_thread_pool.rb +60 -91
- data/lib/rainbows/writer_thread_spawn/client.rb +69 -0
- data/lib/rainbows/writer_thread_spawn.rb +37 -117
- data/lib/rainbows.rb +12 -4
- data/rainbows.gemspec +15 -19
- data/t/GNUmakefile +4 -4
- data/t/close-has-env.ru +65 -0
- data/t/simple-http_Coolio.ru +9 -0
- data/t/simple-http_CoolioFiberSpawn.ru +10 -0
- data/t/simple-http_CoolioThreadPool.ru +9 -0
- data/t/simple-http_CoolioThreadSpawn.ru +9 -0
- data/t/t0004-heartbeat-timeout.sh +2 -2
- data/t/t0007-worker-follows-master-to-death.sh +1 -1
- data/t/t0015-working_directory.sh +7 -1
- data/t/t0017-keepalive-timeout-zero.sh +1 -1
- data/t/t0019-keepalive-cpu-usage.sh +62 -0
- data/t/t0040-keepalive_requests-setting.sh +51 -0
- data/t/t0050-response-body-close-has-env.sh +109 -0
- data/t/t0102-rack-input-short.sh +6 -6
- data/t/t0106-rack-input-keepalive.sh +48 -2
- data/t/t0113-rewindable-input-false.sh +28 -0
- data/t/t0113.ru +12 -0
- data/t/t0114-rewindable-input-true.sh +28 -0
- data/t/t0114.ru +12 -0
- data/t/t9100-thread-timeout.sh +24 -2
- data/t/t9101-thread-timeout-threshold.sh +6 -13
- data/t/test-lib.sh +2 -1
- data/t/test_isolate.rb +9 -4
- data/t/times.ru +6 -0
- metadata +109 -42
- data/GIT-VERSION-FILE +0 -1
- data/lib/rainbows/fiber/rev/heartbeat.rb +0 -8
- data/lib/rainbows/fiber/rev/kato.rb +0 -22
- data/lib/rainbows/fiber/rev.rb +0 -13
- data/lib/rainbows/rev/client.rb +0 -194
- data/lib/rainbows/rev/core.rb +0 -41
- data/lib/rainbows/rev/heartbeat.rb +0 -23
- data/lib/rainbows/rev/thread.rb +0 -46
- data/man/man1/rainbows.1 +0 -193
data/ChangeLog
CHANGED
|
@@ -1,375 +1,850 @@
|
|
|
1
|
-
ChangeLog from
|
|
1
|
+
ChangeLog from http://git.bogomips.org/cgit/rainbows.git (v0.97.0..v2.1.0)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
3
|
+
commit 22370570a203ad584cc882abb26feb880a0ed4f2
|
|
4
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
5
|
+
Date: Wed Dec 29 02:13:04 2010 +0000
|
|
6
|
+
|
|
7
|
+
Rainbows! 2.1.0 - Cool.io, bugfixes and more!
|
|
8
|
+
|
|
9
|
+
Cool.io (new version of Rev) support is explicitly added
|
|
10
|
+
(it always worked before). ":Coolio" may be used in place
|
|
11
|
+
of ":Rev" anywhere in your Rainbows! config file.
|
|
12
|
+
|
|
13
|
+
There is a new "keepalive_requests" config directive to limit
|
|
14
|
+
the number of requests a single connection may make (default:
|
|
15
|
+
100, same as nginx). This may be useful for better
|
|
16
|
+
load-balancing characteristics.
|
|
17
|
+
|
|
18
|
+
The old "Rev" prefixes remain supported as long as Cool.io
|
|
19
|
+
remains compatible with Rev (likely forever).
|
|
20
|
+
|
|
21
|
+
Bug fixes:
|
|
22
|
+
|
|
23
|
+
* Rainbows::ThreadTimeout middleware with multiple clients
|
|
24
|
+
* large, pipelined upload errors with Revactor+Coolio(Rev)
|
|
25
|
+
* high CPU usage for maintaining idle keepalive on *Fiber*
|
|
26
|
+
* needless ThreadPool wakeups
|
|
27
|
+
* request env prematurely cleared keepalive requests,
|
|
28
|
+
breaking some middlewares such as Clogger.
|
|
29
|
+
* "close" not called on body if wrapper and sendfile used together
|
|
30
|
+
|
|
31
|
+
Various code cleanups, and our RDoc website is JavaScript-free.
|
|
32
|
+
See the ChangeLog or git for all changes.
|
|
33
|
+
|
|
34
|
+
commit 40445641f11f01c6a24bf96c8b80eed5fd33a512
|
|
35
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
36
|
+
Date: Tue Dec 28 17:59:27 2010 -0800
|
|
37
|
+
|
|
38
|
+
complete Rev => Coolio renaming
|
|
39
|
+
|
|
40
|
+
We use Cool.io internally everywhere now, but preserve
|
|
41
|
+
Rev-based models for anybody using them.
|
|
42
|
+
|
|
43
|
+
commit 3495d59763e6159975debf32728dc53fc41c5ea1
|
|
44
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
45
|
+
Date: Mon Dec 27 20:25:39 2010 -0800
|
|
46
|
+
|
|
47
|
+
several response body#close fixes
|
|
48
|
+
|
|
49
|
+
Some middlewares require the Rack env to be preserved all
|
|
50
|
+
the way through to close, so we'll ensure all request models
|
|
51
|
+
preserve it.
|
|
52
|
+
|
|
53
|
+
We also need to better response body wrappers/proxies always get
|
|
54
|
+
fired properly when returning. IO.copy_stream and "sendfile"
|
|
55
|
+
gem users could hit cases where wrappers did not fire properly.
|
|
56
|
+
|
|
57
|
+
commit 53afe0b23fc67c5b25541cddbd68f905c649e756
|
|
58
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
59
|
+
Date: Tue Dec 28 06:54:06 2010 +0000
|
|
60
|
+
|
|
61
|
+
dev_fd_response: pass files straight through
|
|
62
|
+
|
|
63
|
+
No need to wrap regular files
|
|
64
|
+
|
|
65
|
+
commit 46d79be0ad3de48ef0a677537becb3508ccad31e
|
|
66
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
67
|
+
Date: Tue Dec 28 01:14:43 2010 +0000
|
|
68
|
+
|
|
69
|
+
enable the keepalive_requests config option
|
|
70
|
+
|
|
71
|
+
This will allow servers to limit the number of keepalive
|
|
72
|
+
requests that can be made over a single connection to
|
|
73
|
+
prevent denial-of-service and also to improve fairness
|
|
74
|
+
in load-balancing.
|
|
75
|
+
|
|
76
|
+
commit ef66567984780b2ce8daa155c367bcf7e049ab77
|
|
77
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
78
|
+
Date: Mon Dec 27 23:25:12 2010 +0000
|
|
79
|
+
|
|
80
|
+
coolio*: favor Coolio over Rev
|
|
81
|
+
|
|
82
|
+
We still use and define Rev internally, but that's
|
|
83
|
+
mostly just manual labor of converting stuff over.
|
|
84
|
+
|
|
85
|
+
commit 728496a31f34234b46d7025a23933aa06dd824f5
|
|
86
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
87
|
+
Date: Mon Dec 27 13:10:57 2010 -0800
|
|
88
|
+
|
|
89
|
+
coolio_fiber_spawn: decrease CPU usage for keepalive
|
|
90
|
+
|
|
91
|
+
Blindly resuming fibers every second is a waste of cycles, we
|
|
92
|
+
can use the ZZ hash in regular FiberSpawn to resume expired
|
|
93
|
+
fibers on an as-needed basis.
|
|
94
|
+
|
|
95
|
+
While we're at it, merge the keepalive-timeout class into the
|
|
96
|
+
heartbeat, there's no reason to have separate timers and
|
|
97
|
+
classes here.
|
|
98
|
+
|
|
99
|
+
commit 0766c1eb631190ee514a90e4d20a941f0a310054
|
|
100
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
101
|
+
Date: Mon Dec 27 13:10:56 2010 -0800
|
|
102
|
+
|
|
103
|
+
t0019: add CPU usage test
|
|
104
|
+
|
|
105
|
+
This requires manual verification :<
|
|
106
|
+
|
|
107
|
+
commit d430bc3a481f897b4f515d5b7d0a0e239f8d2bb2
|
|
108
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
109
|
+
Date: Mon Dec 27 13:10:55 2010 -0800
|
|
110
|
+
|
|
111
|
+
test-lib: fix bug in setting worker_connections
|
|
112
|
+
|
|
113
|
+
We need to be able to set this with keepalive_timeout
|
|
114
|
+
simultaneously.
|
|
115
|
+
|
|
116
|
+
commit 4e7ee4b8a451edf78b0eeac47b8a24c591986e91
|
|
117
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
118
|
+
Date: Mon Dec 27 13:10:54 2010 -0800
|
|
119
|
+
|
|
120
|
+
t0015: even less racy fix
|
|
121
|
+
|
|
122
|
+
We need to ensure the first worker has started and is
|
|
123
|
+
running before attempting to signal the reload.
|
|
124
|
+
|
|
125
|
+
commit 2b85ea421197af84a13f6062b21ddcf61490ebcf
|
|
126
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
127
|
+
Date: Mon Dec 27 08:57:31 2010 +0000
|
|
128
|
+
|
|
129
|
+
doc: misc cleanups and additions for RDoc
|
|
130
|
+
|
|
131
|
+
This is also our website, so we need to document the new
|
|
132
|
+
Cool.io-based concurrency options for users and point
|
|
133
|
+
existing Rev* users to it.
|
|
134
|
+
|
|
135
|
+
commit 87a38d1a5658938a3540b45ab04cc85a9135c8f0
|
|
136
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
137
|
+
Date: Mon Dec 27 07:45:28 2010 +0000
|
|
138
|
+
|
|
139
|
+
t0015: increase reliability of test
|
|
140
|
+
|
|
141
|
+
The worker process may fork before the original process
|
|
142
|
+
is killed during daemonization.
|
|
143
|
+
|
|
144
|
+
commit 3a250fcfb9fcfa0ab3a8105821e670563025faa4
|
|
145
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
146
|
+
Date: Mon Dec 27 07:18:49 2010 +0000
|
|
147
|
+
|
|
148
|
+
initial cool.io support
|
|
149
|
+
|
|
150
|
+
Cool.io is the new name for Rev. We'll continue to support Rev
|
|
151
|
+
until Cool.io breaks backwards compatibility. Rev may not be
|
|
152
|
+
supported if Cool.io is.
|
|
153
|
+
|
|
154
|
+
commit 2873361069dc2f8c793875316a0a2c9b8fa54761
|
|
155
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
156
|
+
Date: Mon Dec 27 04:23:34 2010 +0000
|
|
157
|
+
|
|
158
|
+
fiber/io: avoid allocating Range objects for slicing
|
|
159
|
+
|
|
160
|
+
It's slightly faster this way, but string slicing sucks
|
|
161
|
+
anyways :<
|
|
162
|
+
|
|
163
|
+
commit 40c22b3f0a2ace6e4b51a39624ac5ed5ee3d0162
|
|
164
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
165
|
+
Date: Mon Dec 27 03:56:30 2010 +0000
|
|
166
|
+
|
|
167
|
+
fiber/*: more efficient keepalive_timeout expiry
|
|
168
|
+
|
|
169
|
+
We can use the same interface as Rainbows::Fiber.sleep to avoid
|
|
170
|
+
blindly waking up readers at ever scheduler invocation.
|
|
171
|
+
|
|
172
|
+
commit abb3f7e057bd5fb0aa97cae1410ce2f55ba12b9c
|
|
173
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
174
|
+
Date: Mon Dec 27 03:01:47 2010 +0000
|
|
175
|
+
|
|
176
|
+
fiber/base: use bare "select" where possible
|
|
177
|
+
|
|
178
|
+
Less visual noise
|
|
179
|
+
|
|
180
|
+
commit 2d25a86d1d17bd966eea59e5666e41d9da562811
|
|
181
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
182
|
+
Date: Mon Dec 27 02:59:10 2010 +0000
|
|
183
|
+
|
|
184
|
+
thread_pool: avoid needless wakeups from select
|
|
185
|
+
|
|
186
|
+
No point in waking up when our ticker runs in a separate
|
|
187
|
+
thread.
|
|
188
|
+
|
|
189
|
+
commit a3d3d13711869d420b4473d492bd788ebe493053
|
|
190
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
191
|
+
Date: Mon Dec 27 02:58:31 2010 +0000
|
|
192
|
+
|
|
193
|
+
thread_*: unindent
|
|
194
|
+
|
|
195
|
+
Hopefully this will make our code easier to follow.
|
|
196
|
+
|
|
197
|
+
commit 94b848a8f9120bce8b0abd776b1a9b7e2f4fa30d
|
|
198
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
199
|
+
Date: Mon Dec 27 02:43:44 2010 +0000
|
|
200
|
+
|
|
201
|
+
introduce worker_yield method
|
|
202
|
+
|
|
203
|
+
This lets Rainbows! yield the current worker process
|
|
204
|
+
when busy in the hopes another worker will pick up the
|
|
205
|
+
slack. We can also override this for the single worker
|
|
206
|
+
process case later if people care enough.
|
|
207
|
+
|
|
208
|
+
commit a310302708faa19042282e94525544cfbb23eba5
|
|
209
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
210
|
+
Date: Mon Dec 27 02:36:58 2010 +0000
|
|
211
|
+
|
|
212
|
+
writer_thread_spawn: factor out Client.quit
|
|
213
|
+
|
|
214
|
+
Self-documenting code is easier to follow
|
|
215
|
+
|
|
216
|
+
commit 6ae020c9ac483d822902b5d33f038f79b44d3a50
|
|
217
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
218
|
+
Date: Mon Dec 27 02:30:58 2010 +0000
|
|
219
|
+
|
|
220
|
+
writer_thread_*: split out classes into separate files
|
|
221
|
+
|
|
222
|
+
Use a consistent "Client" naming to reduce confusion
|
|
223
|
+
|
|
224
|
+
commit e7d295fd8e3628eba7a1ba52e95b7dee11532e98
|
|
225
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
226
|
+
Date: Mon Dec 27 02:20:00 2010 +0000
|
|
227
|
+
|
|
228
|
+
writer_thread_*: split out common socket_proxy code
|
|
229
|
+
|
|
230
|
+
Needless duplication sucks
|
|
231
|
+
|
|
232
|
+
commit 7f2cb1b56afda847c29e1e65fe0608a6f20a0fe6
|
|
233
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
234
|
+
Date: Mon Dec 27 02:13:32 2010 +0000
|
|
235
|
+
|
|
236
|
+
writer_thread_*: unindent
|
|
237
|
+
|
|
238
|
+
commit a5ff497e57bc6e8793c38bdd94ea9f1cfefd17fd
|
|
239
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
240
|
+
Date: Sun Dec 26 23:54:49 2010 +0000
|
|
241
|
+
|
|
242
|
+
revactor: split out tee_socket and use autoload
|
|
243
|
+
|
|
244
|
+
Some applications never need TeeSocket, and we don't have
|
|
245
|
+
to worry about thread-safety with Revactor.
|
|
246
|
+
|
|
247
|
+
commit c4d92b384dd3f926fa12eb704eeef663a9cb7b66
|
|
248
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
249
|
+
Date: Sun Dec 26 23:52:43 2010 +0000
|
|
250
|
+
|
|
251
|
+
more :: prefix elimination
|
|
252
|
+
|
|
253
|
+
This should make things easier on the eyes.
|
|
254
|
+
|
|
255
|
+
commit 2e131bfd21f5ec5acc3c86233e5e292cec7aa67d
|
|
256
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
257
|
+
Date: Sun Dec 26 23:52:02 2010 +0000
|
|
258
|
+
|
|
259
|
+
fiber/queue: unindent
|
|
260
|
+
|
|
261
|
+
This also cleans up some constant resolution for the root
|
|
262
|
+
Fiber class.
|
|
263
|
+
|
|
264
|
+
commit 712ef17547291fed37e79d37d0b6e0128ed43e0d
|
|
265
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
266
|
+
Date: Sun Dec 26 23:41:51 2010 +0000
|
|
267
|
+
|
|
268
|
+
remove unnecessary "::" constant prefixing
|
|
269
|
+
|
|
270
|
+
It's ugly to look at.
|
|
271
|
+
|
|
272
|
+
commit 6733af0546a759b73fd63880e8ef2549caf4c4f2
|
|
273
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
274
|
+
Date: Sun Dec 26 23:16:41 2010 +0000
|
|
275
|
+
|
|
276
|
+
never_block: simplify and split out code
|
|
277
|
+
|
|
278
|
+
alias_method is a mess, super is superb!
|
|
279
|
+
|
|
280
|
+
commit 20e8d57127f16da8e4242582dee3b99d54cbb729
|
|
281
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
282
|
+
Date: Sun Dec 26 23:12:18 2010 +0000
|
|
283
|
+
|
|
284
|
+
event_machine: split out server and client classes
|
|
285
|
+
|
|
286
|
+
This should make things easier to find
|
|
287
|
+
|
|
288
|
+
commit a50c9d312b9d5274a95f2816b5f53a3738d0cb92
|
|
289
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
290
|
+
Date: Sun Dec 26 22:48:33 2010 +0000
|
|
291
|
+
|
|
292
|
+
rev_thread_*: unindent and split out
|
|
293
|
+
|
|
294
|
+
This should make classes easier to find and hopefully make
|
|
295
|
+
our code easier to follow.
|
|
296
|
+
|
|
297
|
+
commit 6741aa27e4c35724b5306644d3a391fce415b0c7
|
|
298
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
299
|
+
Date: Sun Dec 26 21:46:46 2010 +0000
|
|
300
|
+
|
|
301
|
+
rainbows/rev/* require/autoload cleanup
|
|
302
|
+
|
|
303
|
+
One line of code saved! We'll also avoid loading
|
|
304
|
+
DeferredChunkResponse which is rarely needed
|
|
305
|
+
(unlike DeferredResponse).
|
|
306
|
+
|
|
307
|
+
commit 869e0d5da8cbe8959983ed66e2b4c31dc7a37d92
|
|
308
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
309
|
+
Date: Sun Dec 26 21:40:34 2010 +0000
|
|
310
|
+
|
|
311
|
+
rename rev/thread => rev/thread_client
|
|
312
|
+
|
|
313
|
+
While we're at it, unindent
|
|
314
|
+
|
|
315
|
+
commit c1655a501fc26f7100dd788b42a1914be833fea4
|
|
316
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
317
|
+
Date: Sun Dec 26 21:33:21 2010 +0000
|
|
318
|
+
|
|
319
|
+
rev_thread_spawn: disable under Ruby 1.8
|
|
320
|
+
|
|
321
|
+
It still burns CPU at the first sign of doing anything
|
|
322
|
+
interesting, so stop it. Ruby 1.9 is the future :P
|
|
323
|
+
|
|
324
|
+
commit fb7d5dbf06f8ce92a23b50a0cc45be3e7b55fccd
|
|
325
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
326
|
+
Date: Sun Dec 26 21:27:08 2010 +0000
|
|
327
|
+
|
|
328
|
+
GNUmakefile: fix packaging task
|
|
329
|
+
|
|
330
|
+
Oops
|
|
331
|
+
|
|
332
|
+
commit 7bfd7995fd403f80940e3f6ac36f9ae58b7040cb
|
|
333
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
334
|
+
Date: Sun Dec 26 03:30:36 2010 +0000
|
|
335
|
+
|
|
336
|
+
avoid HttpParser#keepalive? and HttpParser#reset
|
|
337
|
+
|
|
338
|
+
The HttpParser#next? method will come with keepalive protection
|
|
339
|
+
for Rainbows!, which can prevent clients from monopolizing a
|
|
340
|
+
server with excessive pipelining/keepalive requests.
|
|
341
|
+
|
|
342
|
+
commit 92a11cdfe00c5e551388c2cc1a62bfc59d568c6f
|
|
343
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
344
|
+
Date: Sun Dec 26 09:50:06 2010 +0000
|
|
345
|
+
|
|
346
|
+
bump Unicorn dependency
|
|
347
|
+
|
|
348
|
+
Unicorn 3.2.1 gives us an improved HttpParser#next? that
|
|
349
|
+
preserves state until the next HttpParser#parse call.
|
|
350
|
+
|
|
351
|
+
commit 17156f6f561c6d697a83e3b9beae2d58eb796428
|
|
352
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
353
|
+
Date: Sun Dec 26 03:29:16 2010 +0000
|
|
354
|
+
|
|
355
|
+
rainbows/rev/*: uninident some more
|
|
356
|
+
|
|
357
|
+
This makes constant resolution more predictable, we hope.
|
|
358
|
+
|
|
359
|
+
commit 68accc9930b0653b702553790d4ccd626a8dfdfe
|
|
360
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
361
|
+
Date: Sun Dec 26 03:09:47 2010 +0000
|
|
362
|
+
|
|
363
|
+
rev: split out Rainbows::Rev::Server
|
|
364
|
+
|
|
365
|
+
One file per class/module should be easier for new
|
|
366
|
+
hackers to find. Unindent rainbows/rev/core while
|
|
367
|
+
we're at it, too.
|
|
368
|
+
|
|
369
|
+
commit a35fd37ff0c81ca8130c18b7b77957bafe686f83
|
|
370
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
371
|
+
Date: Sun Dec 26 03:00:11 2010 +0000
|
|
372
|
+
|
|
373
|
+
rev: unindent, needless autoload
|
|
374
|
+
|
|
375
|
+
Deferred* classes will get loaded anyways since
|
|
376
|
+
Rainbows::Rev::Client hit them in case statements.
|
|
377
|
+
|
|
378
|
+
commit 43e3d3f7a8dd2b184c8485469c2acff3dac34009
|
|
379
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
380
|
+
Date: Fri Dec 24 08:52:55 2010 +0000
|
|
381
|
+
|
|
382
|
+
doc: switch documentation generation to wrongdoc
|
|
383
|
+
|
|
384
|
+
It is a common base so we can share documentation tasks
|
|
385
|
+
more easily with Unicorn and it ensures our RDoc no longer
|
|
386
|
+
has JavaScript in it!
|
|
387
|
+
|
|
388
|
+
commit 7e0dc42f7084e1719456a80b2e44049133c2e8b7
|
|
389
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
390
|
+
Date: Mon Dec 20 00:54:17 2010 +0000
|
|
391
|
+
|
|
392
|
+
thread_timeout: fix bad comparison
|
|
393
|
+
|
|
394
|
+
This was causing unrelated requests to get killed every
|
|
395
|
+
+timeout+ seconds, instead of only the ones that were
|
|
396
|
+
running too long.
|
|
397
|
+
|
|
398
|
+
Noticed-by: ghazel@gmail.com
|
|
399
|
+
ref:
|
|
400
|
+
http://mid.gmane.org/AANLkTi=7OhyTwkHsp_rXU7Gp1PokihiQ9bJigpO-BfN6@mail.gmail.com
|
|
401
|
+
|
|
402
|
+
commit 886e0a006d9e8e9c586beae28ed4dc5097064e90
|
|
403
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
404
|
+
Date: Mon Dec 20 03:41:48 2010 +0000
|
|
405
|
+
|
|
406
|
+
thread_timeout: avoid a threading bug under 1.9
|
|
407
|
+
|
|
408
|
+
Because of the lack of GVL-releasing syscalls in this branch
|
|
409
|
+
of the thread loop, we need Thread.pass to ensure other threads
|
|
410
|
+
get scheduled appropriately under 1.9. This is likely a threading
|
|
411
|
+
bug in 1.9 that warrants further investigation when we're in a
|
|
412
|
+
better mood.
|
|
413
|
+
|
|
414
|
+
commit 7e2bb251228a30c0d4e66029b20bbbf85bc99a09
|
|
415
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
416
|
+
Date: Tue Dec 14 18:36:34 2010 -0800
|
|
417
|
+
|
|
418
|
+
FAQ: add a note about config.threadsafe!
|
|
419
|
+
|
|
420
|
+
At least one user ran into it:
|
|
421
|
+
http://mid.gmane.org/AANLkTikegPX2-6Q93++bz_aLt+9nLPJXjg+NkL8tDjeE@mail.gmail.com
|
|
422
|
+
|
|
423
|
+
commit 2bb3f8fd600bd0aabe5e4d7c3d1f99d745fc8f49
|
|
424
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
425
|
+
Date: Thu Dec 9 17:14:04 2010 -0800
|
|
426
|
+
|
|
427
|
+
respect client_body_buffer_size in Unicorn 3.1.0
|
|
428
|
+
|
|
429
|
+
This is only needed for concurrency options that
|
|
430
|
+
do not use TeeInput, since TeeInput automatically
|
|
431
|
+
handles this for us.
|
|
432
|
+
|
|
433
|
+
commit af3629e6bd88b5744016a1c6217c00c37ef5a376
|
|
434
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
435
|
+
Date: Thu Dec 9 14:42:18 2010 -0800
|
|
436
|
+
|
|
437
|
+
bump Unicorn dependency to 3.1.0
|
|
438
|
+
|
|
439
|
+
We'll be taking advantage of configurable
|
|
440
|
+
client_buffer_body_size soon.
|
|
441
|
+
|
|
442
|
+
commit 7b51a4b5e16734bae6fe60d180c3906f96235da4
|
|
443
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
444
|
+
Date: Thu Dec 9 14:22:16 2010 -0800
|
|
445
|
+
|
|
446
|
+
thread_timeout: de-Struct-ify
|
|
447
|
+
|
|
448
|
+
Avoid exposing internals, it's also slightly faster to
|
|
449
|
+
access ivars directly rather than using method calls.
|
|
450
|
+
|
|
451
|
+
commit 6b750f5f952963009a2e6e8702fc8f3d8adc94ea
|
|
452
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
453
|
+
Date: Wed Dec 8 18:35:27 2010 -0800
|
|
454
|
+
|
|
455
|
+
respect "rewindable_input false" in Unicorn config
|
|
456
|
+
|
|
457
|
+
This was completely overlooked for the Rainbows 2.0.x
|
|
458
|
+
releases.
|
|
459
|
+
|
|
460
|
+
commit 10d96a76a1ea4431dd10ba181d747169c22c1cec
|
|
461
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
462
|
+
Date: Wed Dec 8 13:38:52 2010 -0800
|
|
463
|
+
|
|
464
|
+
t/*.sh: indentation fixes
|
|
465
|
+
|
|
466
|
+
We use real tabs for indenting shell code since it is not Ruby.
|
|
467
|
+
|
|
468
|
+
commit 1562a19a021a72a78ba495328d2d37ba0dc83b8c
|
|
469
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
470
|
+
Date: Tue Dec 7 12:11:51 2010 -0800
|
|
471
|
+
|
|
472
|
+
rev+revactor: fix LARGE pipelined uploads
|
|
473
|
+
|
|
474
|
+
Large uploads behave differently with regard to buffering,
|
|
475
|
+
and there were bugs in the way the Rev and Revactor backends
|
|
476
|
+
handled uploads.
|
|
477
|
+
|
|
478
|
+
commit b4835c6d542c6369f2523ab68fc41b0202d7c6dc
|
|
479
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
480
|
+
Date: Fri Dec 3 01:23:11 2010 +0000
|
|
481
|
+
|
|
482
|
+
Rainbows! 2.0.1 - upload pipelining fixes
|
|
483
|
+
|
|
484
|
+
For HTTP clients living on the edge and pipelining uploads, we
|
|
485
|
+
now fully support pipelined requests (as long as the application
|
|
486
|
+
consumes each request in its entirety).
|
|
487
|
+
|
|
488
|
+
commit c096e735efea5050b0559748633403f0387ea3b3
|
|
489
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
490
|
+
Date: Fri Dec 3 01:12:08 2010 +0000
|
|
491
|
+
|
|
492
|
+
fix pipelining of requests with bodies
|
|
493
|
+
|
|
494
|
+
All synchronous models have this fixed in unicorn 3.0.1,
|
|
495
|
+
so only Rev and EventMachine-based concurrency models
|
|
496
|
+
require code changes.
|
|
497
|
+
|
|
498
|
+
commit 64889d9136fa5466269232c26a2f235dd763d8f0
|
|
499
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
500
|
+
Date: Thu Dec 2 07:38:14 2010 +0000
|
|
501
|
+
|
|
502
|
+
ev_core: refactor and split cap_input out
|
|
503
|
+
|
|
504
|
+
Hopefully it makes more sense now and is easier to
|
|
505
|
+
digest for new hackers.
|
|
506
|
+
|
|
507
|
+
commit 945b5760d86b9dd00e65bd0625b98cf75f6a8257
|
|
508
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
509
|
+
Date: Wed Dec 1 21:29:34 2010 -0800
|
|
510
|
+
|
|
511
|
+
ev_core: split out prepare_request_body
|
|
512
|
+
|
|
513
|
+
We may have other uses for this in the future...
|
|
514
|
+
|
|
515
|
+
commit 90789761f0cc78d3726f3a2eda1c5fe95c015ac2
|
|
516
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
517
|
+
Date: Fri Nov 19 19:09:59 2010 -0800
|
|
518
|
+
|
|
519
|
+
Rainbows! 2.0.0 - minority rules!
|
|
520
|
+
|
|
521
|
+
This release is targeted at the minority of web applications
|
|
522
|
+
that deal heavily with uploads.
|
|
523
|
+
|
|
524
|
+
Thanks to Unicorn 3.x, we now support HTTP keepalive for
|
|
525
|
+
requests with bodies as long as the application consumes them.
|
|
526
|
+
Unicorn 3.x also allows disabling the rewindability requirement
|
|
527
|
+
of "rack.input" (in violation of the Rack 1.x spec).
|
|
528
|
+
|
|
529
|
+
The global client_body_max_size may also be applied per-endpoint
|
|
530
|
+
using the Rainbows::MaxBody middleware described in:
|
|
531
|
+
|
|
532
|
+
http://rainbows.rubyforge.org/Rainbows/MaxBody.html
|
|
533
|
+
|
|
534
|
+
commit c33878ac0f9f990aaa2054f8f00674d61bf5c848
|
|
535
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
536
|
+
Date: Sat Nov 20 03:10:09 2010 +0000
|
|
537
|
+
|
|
538
|
+
tests: depend on Unicorn 3.0.0
|
|
539
|
+
|
|
540
|
+
Unicorn 3.0.0 is final and released, so we will use it in our
|
|
541
|
+
tests
|
|
542
|
+
|
|
543
|
+
commit a5986295bfb7bd7c44c863e4670f16481097c7fc
|
|
544
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
545
|
+
Date: Fri Nov 19 18:55:06 2010 -0800
|
|
546
|
+
|
|
547
|
+
revactor: fix braindamaged commit/coding style
|
|
548
|
+
|
|
549
|
+
Oops, last commit was rushed
|
|
550
|
+
|
|
551
|
+
commit da9dfc1dece4fbcdf2a8e8ccdb4914ce4aa3a998
|
|
552
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
553
|
+
Date: Fri Nov 19 18:39:02 2010 -0800
|
|
554
|
+
|
|
555
|
+
simpler keepalive check for synchronous models
|
|
556
|
+
|
|
557
|
+
Unicorn 3.x includes HttpParser#next? which will reset the
|
|
558
|
+
parser for keepalive requests without extra steps.
|
|
559
|
+
|
|
560
|
+
commit c6ffae22748bc22d5ef88fea2a3ca67f480ee74b
|
|
561
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
562
|
+
Date: Fri Nov 19 10:19:45 2010 +0000
|
|
563
|
+
|
|
564
|
+
max_body: rewrite wrappers to be safer
|
|
565
|
+
|
|
566
|
+
To avoid denial-of-service attacks, the wrappers need to
|
|
567
|
+
intercept requests *before* they hit the memory allocator, so we
|
|
568
|
+
need to reimplement the read(all) and gets cases to use
|
|
569
|
+
smaller buffers whenever the application does not specify one.
|
|
570
|
+
|
|
571
|
+
commit 3cee07d750f678af92318c14110c803be3f9b97f
|
|
572
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
573
|
+
Date: Fri Nov 19 10:19:44 2010 +0000
|
|
574
|
+
|
|
575
|
+
max_body: do not enable for RevThread* models
|
|
576
|
+
|
|
577
|
+
Those already use CapInput, just like the rest of the evented
|
|
578
|
+
Rainbows! world.
|
|
579
|
+
|
|
580
|
+
commit 00b854e37391322c05cc16115b245d855b4970be
|
|
581
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
582
|
+
Date: Fri Nov 19 10:19:43 2010 +0000
|
|
583
|
+
|
|
584
|
+
upgrade to Kgio 2.x and Unicorn 3.x
|
|
585
|
+
|
|
586
|
+
Kgio 2.0.0 has a superior API and less likely to conflict or
|
|
587
|
+
blow up with other applications. Unicorn 3.x requires Kgio 2.x,
|
|
588
|
+
too.
|
|
589
|
+
|
|
590
|
+
commit 0f00424be24806791f2b253ddac6d35102842646
|
|
591
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
592
|
+
Date: Wed Nov 17 10:06:45 2010 -0800
|
|
593
|
+
|
|
594
|
+
test_isolate: depend on newer Unicorn
|
|
595
|
+
|
|
596
|
+
It allows disabling rewindable input and contains
|
|
597
|
+
simpler code for upload processing.
|
|
598
|
+
|
|
599
|
+
commit 31cf77e7aa2f2e6065e7ace44e55c3f042b51f1b
|
|
600
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
601
|
+
Date: Tue Nov 16 16:16:42 2010 -0800
|
|
602
|
+
|
|
603
|
+
reimplement client_max_body_size handlers
|
|
604
|
+
|
|
605
|
+
This allows the client_max_body_size implementation to not rely
|
|
606
|
+
on Unicorn::TeeInput internals, allowing it to be used with
|
|
607
|
+
Unicorn::StreamInput (or any other (nearly)
|
|
608
|
+
Rack::Lint-compatible input object).
|
|
609
|
+
|
|
610
|
+
commit 42747db815ad668b20849afb2a9dcdd1319713ae
|
|
611
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
612
|
+
Date: Tue Nov 2 12:32:23 2010 -0700
|
|
613
|
+
|
|
614
|
+
avoid Errno::EAGAIN, harder
|
|
615
|
+
|
|
616
|
+
Errno::EAGAIN is still a problem under Ruby 1.9.2, so try harder
|
|
617
|
+
to avoid it and use kgio methods. Even when 1.9.3 is available,
|
|
618
|
+
kgio will still be faster as exceptions are slower than normal
|
|
619
|
+
return values.
|
|
620
|
+
|
|
621
|
+
commit 427ef4a2953a4b2d34f7dd89566a0cb5ee6e734d
|
|
622
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
623
|
+
Date: Tue Nov 2 11:49:17 2010 -0700
|
|
624
|
+
|
|
625
|
+
avoid Kgio::WaitReadable/WaitWritable constants
|
|
626
|
+
|
|
627
|
+
The underlying symbolic names are easier to type and
|
|
628
|
+
recommended.
|
|
629
|
+
|
|
630
|
+
commit ed3a30dcfb5489447dec9c3f73e8bec9dbf7713a
|
|
631
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
632
|
+
Date: Thu Nov 4 19:52:35 2010 -0700
|
|
633
|
+
|
|
634
|
+
process_client: fix attempted keepalive on HTTP 0.9
|
|
635
|
+
|
|
636
|
+
The long-term goal is to make the Unicorn API more terse when
|
|
637
|
+
handling keepalive.
|
|
638
|
+
|
|
639
|
+
commit 9f185041fb7af4cda21ba2d547fd4d16d9b2e453
|
|
640
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
641
|
+
Date: Thu Oct 28 08:42:09 2010 +0000
|
|
642
|
+
|
|
643
|
+
Rainbows! 1.0.0 - internal cleanups
|
|
644
|
+
|
|
645
|
+
This release is merely a milestone in our evolving internal API.
|
|
646
|
+
Use of kgio may result in performance improvements under Ruby
|
|
647
|
+
1.9.2 with non-blocking I/O-intensive workloads.
|
|
648
|
+
|
|
649
|
+
The only bugfix is that SIGHUP reloads restores defaults on
|
|
650
|
+
unset settings. A similar fix is included in Unicorn 2.0.0
|
|
651
|
+
as well.
|
|
652
|
+
|
|
653
|
+
commit 015635f877084cc05a9e6e4c1430c70279d0a04e
|
|
654
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
655
|
+
Date: Thu Oct 28 08:40:12 2010 +0000
|
|
656
|
+
|
|
657
|
+
tests: avoid race conditions on reload tests
|
|
658
|
+
|
|
659
|
+
We need to ensure the old worker is really dead before sending
|
|
660
|
+
requests after reloading.
|
|
661
|
+
|
|
662
|
+
commit b06c6b3ac214bc598d499c994884113d5b106e90
|
|
663
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
664
|
+
Date: Thu Oct 28 08:29:53 2010 +0000
|
|
665
|
+
|
|
666
|
+
t0018: wait for old worker to be reaped
|
|
667
|
+
|
|
668
|
+
On busy machines, old workers may not shutdown quickly
|
|
669
|
+
enough and may still be processing requests.
|
|
670
|
+
|
|
671
|
+
commit f84f138233be0607b0151a5a28c3f9190ba336a2
|
|
672
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
673
|
+
Date: Thu Oct 28 08:20:37 2010 +0000
|
|
674
|
+
|
|
675
|
+
rev+event_machine: small cleanups with new parser API
|
|
676
|
+
|
|
677
|
+
These allow for small reductions in the amount of variables
|
|
678
|
+
we have to manage, more changes coming with later Unicorns.
|
|
679
|
+
|
|
680
|
+
commit c4579db76b9ed5b0286fad852e798e8a890f093c
|
|
681
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
682
|
+
Date: Thu Oct 28 02:17:25 2010 +0000
|
|
683
|
+
|
|
684
|
+
HUP reload restores defaults on unset settings
|
|
685
|
+
|
|
686
|
+
For consistency, changed settings are reset back to
|
|
687
|
+
their default values if they are removed or commented
|
|
688
|
+
out from the config file.
|
|
689
|
+
|
|
690
|
+
commit 83644e02068311c7ff9cdbc63efd4764d1518138
|
|
691
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
692
|
+
Date: Wed Oct 27 23:52:28 2010 +0000
|
|
693
|
+
|
|
694
|
+
use Unicorn 2.0.0 final
|
|
695
|
+
|
|
696
|
+
Unicorn 2.0.0 has CPU wakeup reductions.
|
|
697
|
+
|
|
698
|
+
commit 2b9503566759678c9fbd7b01d1b5f487854208db
|
|
699
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
700
|
+
Date: Tue Oct 26 21:36:02 2010 +0000
|
|
701
|
+
|
|
702
|
+
Rakefile: updates for prereleases
|
|
703
|
+
|
|
704
|
+
We do prereleases, now.
|
|
705
|
+
|
|
706
|
+
commit a47cd4a7f392a76357ed4f3e458797ae1f9c8f25
|
|
707
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
708
|
+
Date: Tue Oct 26 21:26:03 2010 +0000
|
|
709
|
+
|
|
710
|
+
Rainbows! 1.0.0pre1 - kinder, gentler I/O
|
|
711
|
+
|
|
712
|
+
Mostly internal changes for kgio (and Unicorn) integration.
|
|
713
|
+
There should be no (supported) user-visible changes from
|
|
714
|
+
Rainbows! 0.97.0. kgio should improve performance for
|
|
715
|
+
concurrency models that use non-blocking I/O internally,
|
|
716
|
+
especially under Ruby 1.9.2
|
|
717
|
+
|
|
718
|
+
commit 0298a6743f2cadf8c8e47a298c5b35505b74af46
|
|
719
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
720
|
+
Date: Tue Oct 26 21:20:45 2010 +0000
|
|
721
|
+
|
|
722
|
+
gemspec: bump development dependency of Isolate
|
|
723
|
+
|
|
724
|
+
Might as well go with the latest and greatest,
|
|
725
|
+
it has saner defaults at least.
|
|
726
|
+
|
|
727
|
+
commit 567e6ce5dba5ad2cca2cca8c64123e27939bff2b
|
|
728
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
729
|
+
Date: Tue Oct 26 21:13:10 2010 +0000
|
|
730
|
+
|
|
731
|
+
doc: RDoc updates
|
|
732
|
+
|
|
733
|
+
Once again we avoid documenting internals on the public
|
|
734
|
+
website and use code comments for other developers.
|
|
735
|
+
|
|
736
|
+
commit 894cb73887c106acc793f0317ee849ae215ead56
|
|
737
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
738
|
+
Date: Mon Oct 25 22:15:47 2010 +0000
|
|
739
|
+
|
|
740
|
+
reduce dependency on IO#write_nonblock
|
|
741
|
+
|
|
742
|
+
kgio_trywrite is superior if it is available.
|
|
743
|
+
|
|
744
|
+
commit 4ee6e0dafeb1b7af28fa90ae27c1a1a04aa8e852
|
|
745
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
746
|
+
Date: Sat Oct 23 00:42:04 2010 +0000
|
|
747
|
+
|
|
748
|
+
http_request: remove this (sub)class
|
|
749
|
+
|
|
750
|
+
It does not appear to be needed, for now, since the
|
|
751
|
+
parser and Unicorn::HttpRequest are one and the same.
|
|
752
|
+
|
|
753
|
+
commit 180485d49ea858f83ef2a28a9e07224aa514edc7
|
|
754
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
755
|
+
Date: Fri Oct 22 16:21:03 2010 -0700
|
|
756
|
+
|
|
757
|
+
unindent most files
|
|
758
|
+
|
|
759
|
+
This simplifies and disambiguates most constant resolution
|
|
760
|
+
issues as well as lowering our identation level. Hopefully
|
|
761
|
+
this makes code easier to understand.
|
|
762
|
+
|
|
763
|
+
commit 41145ed4d335718ac43aec9313b7571a12fe96ee
|
|
764
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
765
|
+
Date: Fri Oct 22 15:31:47 2010 -0700
|
|
766
|
+
|
|
767
|
+
local.mk.sample: remove testing under 1.9.1
|
|
768
|
+
|
|
769
|
+
Ruby 1.9.2 has been out for a while and is the stable
|
|
770
|
+
release nowadays.
|
|
771
|
+
|
|
772
|
+
commit b595ad7333ff85452b229674c6726e40d2cf7bb9
|
|
773
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
774
|
+
Date: Fri Oct 22 18:55:46 2010 +0000
|
|
775
|
+
|
|
776
|
+
README: update copyright year
|
|
777
|
+
|
|
778
|
+
This project is over 1 year old!
|
|
779
|
+
|
|
780
|
+
commit 4a568eeb7d17885579790d0ae004f04aa13479cb
|
|
781
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
782
|
+
Date: Fri Oct 22 02:50:09 2010 +0000
|
|
783
|
+
|
|
784
|
+
dev_fd_response: do not wrap for Fiber-aware IOs
|
|
785
|
+
|
|
786
|
+
Applications may use wait_readable-aware methods directly
|
|
787
|
+
to work with Rainbows!
|
|
788
|
+
|
|
789
|
+
commit 6d46978bdc8d2ee4263431ecdcada53389b12597
|
|
790
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
791
|
+
Date: Fri Oct 22 02:51:18 2010 +0000
|
|
792
|
+
|
|
793
|
+
fiber_{pool,spawn}: unindent
|
|
794
|
+
|
|
795
|
+
Reduces confusion for constant resolution/scoping rules
|
|
796
|
+
and lowers LoC.
|
|
797
|
+
|
|
798
|
+
commit 03806d2b44c2d3cee75258ee9e83d671e751baeb
|
|
799
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
800
|
+
Date: Fri Oct 22 02:38:40 2010 +0000
|
|
801
|
+
|
|
802
|
+
fiber_pool: no need for old Fiber::IO
|
|
803
|
+
|
|
804
|
+
Rainbows::Client takes care of the I/O wait/read-ability
|
|
805
|
+
for us already.
|
|
806
|
+
|
|
807
|
+
commit 15631717fce044fbad2f386a7b1c7daf4bdd83d2
|
|
808
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
809
|
+
Date: Thu Oct 21 16:25:39 2010 -0700
|
|
810
|
+
|
|
811
|
+
code shuffling for kgio
|
|
812
|
+
|
|
813
|
+
Despite the large number of changes, most of it is code
|
|
814
|
+
movement here.
|
|
815
|
+
|
|
816
|
+
commit d4a2b5dd2b85f4b2d3bb120ee1e1b0dde31bc25c
|
|
817
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
818
|
+
Date: Wed Oct 20 17:48:58 2010 -0700
|
|
819
|
+
|
|
820
|
+
unicorn 2.x updates + kgio
|
|
821
|
+
|
|
822
|
+
We get basic internal API changes from Unicorn,
|
|
823
|
+
code simplifications coming next.
|
|
824
|
+
|
|
825
|
+
commit a085ba3586756ac1f778d2862f75889de2449b0e
|
|
826
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
827
|
+
Date: Wed Oct 20 17:48:57 2010 -0700
|
|
828
|
+
|
|
829
|
+
http_server: more descriptive error for debugging
|
|
830
|
+
|
|
831
|
+
Sometimes we have stupid syntax or constant resolution
|
|
832
|
+
errors in our code.
|
|
833
|
+
|
|
834
|
+
commit ad821f70a2488a91f2be1ac53cb2e64f50743989
|
|
835
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
836
|
+
Date: Tue Sep 28 17:40:01 2010 -0700
|
|
837
|
+
|
|
838
|
+
start using kgio library
|
|
839
|
+
|
|
840
|
+
It removes the burden of byte slicing and setting file
|
|
841
|
+
descriptor flags. In some cases, we can remove unnecessary
|
|
842
|
+
peeraddr calls, too.
|
|
843
|
+
|
|
844
|
+
commit 11c75ec06ce72cea0c760161dc01a196500aa293
|
|
845
|
+
Author: Eric Wong <normalperson@yhbt.net>
|
|
846
|
+
Date: Fri Sep 17 08:55:35 2010 +0000
|
|
847
|
+
|
|
848
|
+
event_machine: remove unnecessary "return"
|
|
849
|
+
|
|
850
|
+
Noise is bad.
|