Eric Wong <normalperson / yhbt.net> wrote:
> Thank you for proposing this.  I think this will simplify working with
> Ruby IO and make me happier since I work with a lot of IO-related code.
> Outside of test cases, I don't forsee compatibility problems either.

Ugh, I take that back...

This can hide existing bugs.  For example, I track open connection
counts (persistent HTTP connections are expired in a GC-like manner)
in the multi-threaded yahns server[1].  Something like:

	@mtx.synchronize do
	  @count -= 1
	  io.close
	end

If I get IOError as in 2.2, I'll there is a major bug (probably race
condition) fix the code.  But now, I may need to add extra checks for
io.closed? before every io.close:

	@mtx.synchronize do
	  @count -= 1
	  raise "MAJOR BUG!" if io.closed?
	  io.close
	end

Anyways, I'm not sure if many people complained about IOError on
IO#close over the past years; so perhaps reverting to 2.2 behavior is
safer.


[1] http://yahns.yhbt.net/README || git clone git://yhbt.net/yahns