ChangeLog from http://bogomips.org/http_spew.git commit 0e7be47dae62ffbbb5f69d42daea21e4f66ead0c Author: Eric Wong Date: Thu Nov 3 00:23:03 2011 +0000 http_spew 0.4.0 Bump kgio dependency to the latest version to remove need for IO#wait. commit b11b3d1b4212b5d6a8df12d365eeee50668439e1 Author: Eric Wong Date: Mon Oct 31 17:25:49 2011 -0700 use kgio_wait_readable instead of IO#wait Newer kgio (2.5 and later) expose an optional timeout for kgio_wait_readable. IO#wait will unnecessarily call ioctl(2) with FIONREAD. commit 1817385f5e72515d64c3b1296bc20af8b0c0423a Author: Eric Wong Date: Thu Jun 9 14:02:58 2011 -0700 gemspec: update kcar dependency kcar 0.3.0 has minor improvements commit b53bbc7852d9788099e514b54a0b90d82a3338bb Author: Eric Wong Date: Wed May 11 23:25:49 2011 +0000 http_spew 0.3.0 - ContentMD5 improvements There are minor changes to HTTP_Spew::ContentMD5: * allow optional input param to initialize * update bytes_digested for incomplete xfers Still not API-stable, but maybe it's closer... commit 9d42089445aa2b61a50bf9a57a6f839569f4a1d4 Author: Eric Wong Date: Wed May 11 21:05:04 2011 +0000 content_md5: update bytes_digested for incomplete xfers Being able to track progress is good. commit 1a71f9204211061460e05e92c5523744b9b18afb Author: Eric Wong Date: Wed May 11 20:08:20 2011 +0000 content_md5: optional input param to initialize This allows users to specify an alternate input without modifying the Rack +env+. This is potentially useful for chaining other filters. commit 84eaf4df3da4ef55e21649b971f2f246ab556b52 Author: Eric Wong Date: Tue May 10 14:40:53 2011 -0700 http_spew 0.2.0 - bugfixes and improvements InputSpray may now be layered on top of ContentMD5 successfully. Improved multi-threading abilities and tests. Do not consider the API remotely stable, yet. commit 02e333f025fb31e3384941c8c890b94394f98c34 Author: Eric Wong Date: Mon May 9 12:07:14 2011 -0700 test: disable rewindable input for Unicorn In most cases, it's a feature we do not want. commit c4b3c9d4231655b053472d47046d5512e55a79a9 Author: Eric Wong Date: Mon May 9 19:03:27 2011 +0000 request: fix bad constant reference Oops :< commit 8849da940687bd6433cf4b18cb4096f6867f3b3e Author: Eric Wong Date: Mon May 9 18:32:28 2011 +0000 content_md5: switch back to pipe for tee-ability This will save memory bandwidth down the line on Linux commit 8c47ed775e7d40291660354bff29efea3d6f177a Author: Eric Wong Date: Sat May 7 02:20:28 2011 +0000 content_md5: small garbage reduction Might help somewhere... commit ec0ff47df8c4068da2977cc9cb444caaac17b571 Author: Eric Wong Date: Sat May 7 01:52:16 2011 +0000 improve reliability of input_spray Use pipes to avoid race condidions and deadlocks commit 8157576344b9fcf98e85aafcc958c6ebe385b55b Author: Eric Wong Date: Fri May 6 20:38:43 2011 +0000 update to kgio 2.4.0 Kgio.poll no longer returns EINTR commit af2462a69eae821d6160fd2c2e571a589088977c Author: Eric Wong Date: Thu May 5 16:53:53 2011 -0700 chunky_pipe: better error checking commit 58ec2331a74ae472694fddae03f4ff454a801444 Author: Eric Wong Date: Thu May 5 16:53:04 2011 -0700 test_request: longer timeout for tests This increases reliability, hopefully commit 014cfa31df238a6b7a7e1652442613eed841b757 Author: Eric Wong Date: Wed May 4 18:11:22 2011 -0700 class_methods: fix race/deadlock issues commit 254b6917d15d4bc013d9ca6889dc802b41592903 Author: Eric Wong Date: Wed Apr 20 17:53:14 2011 -0700 GNUmakefile: version file is added to gem It's kinda useless otherwise... commit 20fc09850031fb0a26f71ceafd15c93b924582f9 Author: Eric Wong Date: Wed Apr 20 17:44:01 2011 -0700 content_md5: stop using a pipe + thread Too complex. commit 7ac87f270c2583262ea923960c7cbb8a9b1f2dea Author: Eric Wong Date: Wed Apr 20 17:43:41 2011 -0700 test_upload: more robust test case Servers can be super fast. commit 5e7e0553b7b435940afd478b83ebc265f31fdcf3 Author: Eric Wong Date: Wed Apr 20 17:43:13 2011 -0700 test_upload: fix timeout for seconds HTTP_Spew.wait is now in seconds, not milliseconds commit 33ae61959c657b5c60c2b7d9adb137ad46b24a15 Author: Eric Wong Date: Wed Apr 20 16:53:13 2011 -0700 request: handle EOF on read properly "eof!" was never a method :x commit f524b02e638cf6ec138f92538cf169edf524326c Author: Eric Wong Date: Wed Apr 20 16:52:34 2011 -0700 content_md5: use kgio_write instead of IO#write for consistency, not that we really take advantage of kgio_write at the moment... commit 3dd4f8c357b687bc1bf47785253e84cd7caa4661 Author: Eric Wong Date: Wed Apr 20 16:52:07 2011 -0700 input_spray: kill needless ivar assignment Nothing references the writer thread. commit b3dc72f3762b737bfc5dbed2d3d296a61879dc09 Author: Eric Wong Date: Wed Apr 20 16:51:23 2011 -0700 test/helper: use Thread.abort_on_exception = true We want to detect failures during testing and fail hard commit bde96ebe0c31508a4128542fce8753ba5e7403d7 Author: Eric Wong Date: Wed Apr 20 16:09:18 2011 -0700 remove timed_queue class We don't need it, a mutex is all we need. commit 9e5c03f84e4961d236398d416d526eef8344f98f Author: Eric Wong Date: Wed Apr 20 15:42:53 2011 -0700 auto-generate version.rb file based on git version It's helpful for people using in-development versions of the code. commit 6657070f27364688bba503c7e58add6dfe4dd8bf Author: Eric Wong Date: Wed Apr 20 15:34:20 2011 -0700 reorganize class methods and exceptions Also none of the exceptions we raise are for programming/user so don't bother generating an expensive backtrace. commit 100c23e10910bb8daff5507fd69f5d951b804672 Author: Eric Wong Date: Wed Apr 20 15:12:27 2011 -0700 request: support limiting accepted response codes Some apps don't want certain responses and we won't treat that as valid. commit 67e23586d908eeed510508405dcdbee1dc5f9033 Author: Eric Wong Date: Wed Apr 20 14:49:06 2011 -0700 wait_mt: simplify commit d2e882bdf763319ab149044440fe9bf108d46bc4 Author: Eric Wong Date: Wed Apr 20 14:29:26 2011 -0700 timed_queue: fix unused variable warning commit 87cb2f5328bc20245a53a8462e6c1324c977189e Author: Eric Wong Date: Wed Apr 20 14:17:20 2011 -0700 content_md5: make this a read-only IO-like object It's easier to use this way since we'll also be able to see the Content-MD5 and number of bytes digested. commit 4a3f8cae93d12ebea896227e789d01912a3d55f3 Author: Eric Wong Date: Wed Apr 20 14:01:39 2011 -0700 chunky_pipe: autoclose on EOF Since env["rack.input"] can't reliably be closed any other way. commit 0b6c35740ab1dd0ac64183b9ae0f1a5c710e4022 Author: Eric Wong Date: Thu Apr 14 15:19:02 2011 -0700 timeouts are in seconds, not milliseconds It's more consistent with other Ruby code. poll(2) (and epoll(2)) remain exception to that, so the Ruby wrappers for those calls still use milliseconds. commit 9e727f32a6e3506994934b9a48204ffdf0003bca Author: Eric Wong Date: Thu Apr 14 21:56:48 2011 +0000 allow combining input_spray + MD5 filter This is required for large parallel uploads. commit 3aa054616bae3184ead01e78d70a707b59f71e63 Author: Eric Wong Date: Thu Apr 14 20:59:59 2011 +0000 Gemfile: depend on Unicorn 3 for tests We need trailer support commit b35f0d9bcdd3551bcdf2b5285c92197767fde496 Author: Eric Wong Date: Fri Apr 8 06:15:04 2011 +0000 timed_queue: Queue-like class that works with a timeout commit 3db374e644014726092913eee7a4f09d15f6762c Author: Eric Wong Date: Tue Apr 5 17:37:54 2011 -0700 chunky_pipe: rdoc purpose of this class commit aac364b03306b1ba6ac65c325d946db4b0af02bd Author: Eric Wong Date: Tue Apr 5 17:34:01 2011 -0700 content_md5: cleaner pack invocation (Ruby 1.9-only) No need to String#strip! commit c78c63adde85f0b329b44484ae652b0acdee4063 Author: Eric Wong Date: Fri Mar 18 14:23:51 2011 -0700 doc: various rdoc updates Forcing myself to relearn my own library commit cfa6c6b329ae44ae4f30a590d45e5df4c2d14d9a Author: Eric Wong Date: Thu Mar 17 14:44:06 2011 -0700 tests: cleanup shadow warnings under 1.9.2 commit 1216ec9fc829c8c65f0f8ae2376138b90a1083d3 Author: Eric Wong Date: Thu Mar 17 21:19:54 2011 +0000 pkg.mk: new task for checking Ruby warnings commit efcb08f789d60ebec26eadaada9af09593fedb9b Author: Eric Wong Date: Wed Mar 16 01:11:05 2011 +0000 remove needless assignments More noise commit 6ce8e006a94a852ed76ffeababa1cac2ed7889c0 Author: Eric Wong Date: Wed Mar 16 01:06:22 2011 +0000 content_md5: improve readability commit 61c1164c39886a198d33697c14c9abf099e3e08f Author: Eric Wong Date: Wed Mar 16 00:31:25 2011 +0000 use bundler commit 2318ee6a732f71d38a7749c0663bf780135be49c Author: Eric Wong Date: Mon Feb 28 04:27:26 2011 +0000 gemspec: bump kcar version Newer is better commit 32223af63dc5296cd09f2472ad60263d98f379a2 Author: Eric Wong Date: Thu Feb 24 08:28:34 2011 +0000 HTTP spew 0.1.0 - initial release Might as well... commit e11489549eefff5ae031f2127bc72efe8187f938 Author: Eric Wong Date: Thu Feb 24 08:48:14 2011 +0000 fixes for Ruby 1.9.3dev 1.9.3dev got louder about warnings and more careful about shared strings. commit aefc248decd16db8098fef6148ed825e83bebfc1 Author: Eric Wong Date: Thu Feb 10 13:48:15 2011 -0800 test/helper: cleanup fifo after using it No need to flood our $TMPDIR :x commit 5d23e362ee382d57672bf4f21563c94d3b0bca03 Author: Eric Wong Date: Thu Feb 10 10:44:21 2011 +0000 hit_n_run: an even more terrible HTTP requester It just requests and never cares for a response! commit cf5b6c3b0664471f3fbd384c50d940d2f6c2781a Author: Eric Wong Date: Thu Feb 10 10:25:39 2011 +0000 add Content-MD5 input filter support This means we can make requests with Content-MD5 trailers commit 20f5a767769aabee3b26ae05c9d8c9532fa84b16 Author: Eric Wong Date: Thu Feb 10 10:23:35 2011 +0000 chunky_pipe: error transfer between threads Calling IO#close is racy with threads, so we transfer the error over to the reader if the writer has to error out. commit 9f97b6012ab0e777adfc342474bb95b5a55f9643 Author: Eric Wong Date: Thu Feb 10 10:21:27 2011 +0000 wait: do not poll if pollset is empty No point :P commit a9f76e7e7d78d4d2313819e43c486ecd33cc998a Author: Eric Wong Date: Thu Feb 10 10:21:00 2011 +0000 do not clobber existing error when assigning commit 711b3503dbcbe08850595796824b84eaf32ba4c4 Author: Eric Wong Date: Thu Feb 10 08:54:29 2011 +0000 split out chunky_pipe into it's own module It should be top-level and it's a good name, too :D commit bbb83625d3197d321c4fe4526e0fcdb80ddcc1b9 Author: Eric Wong Date: Thu Feb 10 08:37:43 2011 +0000 input_splitter -> input_spray, add tests It seems to work alright in a unit test environment commit fb0d48b2ccfced833f879e592d43700d40473c77 Author: Eric Wong Date: Tue Feb 8 19:46:31 2011 -0800 add untested input_splitter It'll be useful for splitting out inputs into different requests and processing them in parallel. commit 89e2b2b90136525d7e7905b3e1fa0e711398f4b3 Author: Eric Wong Date: Tue Feb 8 18:59:32 2011 -0800 cleanup request handling of input Remove unneeded Fiber dependency. commit 9421276c001adbd8904366e92fe6181ea925a2db Author: Eric Wong Date: Tue Feb 8 18:59:01 2011 -0800 test/helper: properly handle worker_processes != 4 Oops, we're about to start using it commit 8a5b2fac7f448c35507cb081178ad9027843b335 Author: Eric Wong Date: Tue Feb 8 18:16:01 2011 -0800 HTTP_Spew.wait retries requests on EINTR We may not have rv set yet. commit 4809a6b7a97a0087899107820a93d70283c9502a Author: Eric Wong Date: Tue Feb 8 18:13:40 2011 -0800 add wait_nonblock! and fix wait return values Like Process.waitall, we want to wait on and return all running requests possible. commit a898603166528d6eaebcf151008ccd99b01ea115 Author: Eric Wong Date: Tue Feb 8 18:13:17 2011 -0800 request: document close method We don't want to think it's unused. commit 27696c3947f2339a8f708377ba5618044207340a Author: Eric Wong Date: Tue Feb 8 18:12:07 2011 -0800 request: optimize string requests by avoiding Fiber No need for Fiber in some cases... commit 10283cdff905c4af58e633ef052d3823deba6db5 Author: Eric Wong Date: Tue Feb 8 18:11:23 2011 -0800 test_upload: switch this test to use a temporary file We don't want to use too much memory commit 5312aeb04ae29a6187f39cc655356f1b42402fe0 Author: Eric Wong Date: Tue Feb 8 18:10:14 2011 -0800 test/helper: allow worker_processes to be specified We want to disable parallelization sometimes commit 3a2e1ac5d3679bfa44056a67118034da50c948d1 Author: Eric Wong Date: Tue Feb 8 15:03:28 2011 -0800 switch from IO.select to to Kgio.poll No high descriptor limits anymore commit c25326ff75c1e7da0c8e366ce46c84aea6ad094b Author: Eric Wong Date: Mon Feb 7 08:51:15 2011 +0000 initial commit