--CdrF4e02JqNVZeln
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Aug 02, 2011 at 07:35:15AM +0900, Yehuda Katz wrote:
> 
> Issue #5138 has been reported by Yehuda Katz.
> 
> ----------------------------------------
> Bug #5138: Add nonblocking IO that does not use exceptions for EOF and EWOULDBLOCK
> http://redmine.ruby-lang.org/issues/5138
> 
> Author: Yehuda Katz
> Status: Open
> Priority: Normal
> Assignee: Yukihiro Matsumoto
> Category: core
> Target version: 1.9.4
> ruby -v: ruby 1.9.4dev (2011-07-31 trunk 32788) [x86_64-darwin11.0.0]
> 
> 
> The current Ruby I/O classes have non-blocking methods (read_nonblock andrite_nonblock). These methods will never block, and if they would block, they raise an exception instead (IO::WaitReadable or IO::WaitWritable). In addition, if the IO is at EOF, they raise an EOFError.
> 
> These exceptions are raised repeatedly in virtually every use of the non-blocking methods. This patch adds a pair of methods (try_read_nonblock and try_write_nonblock) that have the same semantics as the existing methods, but they return Symbols instead of raising exceptions for these routine cases:
> 
> * :read_would_block
> * :write_would_block
> * :eof
> 
> The patch contains updates for IO, StringIO, and OpenSSL. The updates areully documented and tested.

Bump.  Can someone please give feedback?  What needs to change in this
patch before it can be applied?

Thanks!

-- 
Aaron Patterson
http://tenderlovemaking.com/

--CdrF4e02JqNVZeln
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (Darwin)

iQEcBAEBAgAGBQJOyIqGAAoJEJUxcLy0/6/GcDMIAIDkHJ9yckgXi0pZMxnQzL90
O6Fpaoy3a5jJsOKhlUdi/CaYg8VUWPjAjL6vlDaBX+X3OerpoywsKxDsElrAMbpZ
QbcE+lW+AXq1CUZMZZdO46r44/jevFhsD87OjAIS0IUZAAldzi6E93JDVOUNFp4Z
PRy5gD5v+XeNKs/u+81bX3oXkWIY9J3sk7erwmimy7TR/8x/uJ3zHSVj3rS7klq7
rvxE1sTOGXzejDsig7SK9Ro1GR5vA4xOC28K++WTHgaK3DXF85fJk61sMiZfVIcZ
P66OUismi/JVobyCJCxcCTLjvYzyFMIYnfQtOW6FRz03/wwxu0fcSLWg/d6j+yIn
-----END PGP SIGNATURE-----

--CdrF4e02JqNVZeln--