celluloid/celluloid-io — pull request #36 by benlangfeld (2012-12-13 22:48:48+00:00)
Title: Nonblocking TCPSocket specs should actually use a non-blocking TCPSocket

It seems the TCPSocket specs were using a blocking TCPSocket outside of an actor (https://github.com/celluloid/celluloid-io/blob/master/spec/spec_helper.rb#L51), and simply reading from it within an actor. This is an invalid test and does not cover this use case: https://github.com/celluloid/celluloid-io/blob/master/examples/echo_client.rb#L14

I have corrected the specs to use a non-blocking Celluloid::IO::TCPSocket. There are a couple of outstanding issues:

* `#read` appears to be broken and hangs indefinitely
* `#evented?` is undefined

I'm not 100% certain that the new specs are valid, so those need to be verified before we can classify the failures as genuine bugs. Additionally, I have not run anywhere other than CRuby 1.9.3 for now, and am focussing on getting that working before tackling JRuby/rbx/2.0.0 compat later.