Skip to content

Instantly share code, notes, and snippets.

@iconara
Last active August 29, 2015 14:08
Show Gist options
  • Save iconara/e20e2f99c6f89697912f to your computer and use it in GitHub Desktop.
Save iconara/e20e2f99c6f89697912f to your computer and use it in GitHub Desktop.
Non blocking IO on JRuby 9k
require 'socket'
require 'thread'
server_port = 45678
server_bound_barrier = Queue.new
Thread.start do
server_socket = TCPServer.new(server_port)
server_bound_barrier << nil
readables = [server_socket]
writables = []
loop do
r, w, _ = IO.select(readables, writables, nil, nil)
r && r.each do |socket|
if socket == server_socket
client_connection, _ = server_socket.accept_nonblock
readables << client_connection
else
socket.read_nonblock(2**16)
p :server_read
end
end
end
end
server_bound_barrier.pop
socket = TCPSocket.new('localhost', server_port)
loop do
IO.select(nil, [socket], nil, nil)
socket.write_nonblock('hello')
p :client_write
end
require 'socket'
require 'thread'
server_port = 45678
server_bound_barrier = Queue.new
Thread.start do
server_socket = TCPServer.new(server_port)
server_bound_barrier << nil
buffers = Hash.new { |h, k| h[k] = '' }
readables = [server_socket]
writables = []
loop do
r, w, _ = IO.select(readables, writables, nil, nil)
r && r.each do |socket|
if socket == server_socket
client_connection, _ = server_socket.accept_nonblock
readables << client_connection
else
buffers[socket] << socket.read_nonblock(2**16)
writables << socket unless writables.include?(socket)
p :server_read
end
end
w && w.each do |socket|
bytes_written = socket.write_nonblock(buffers[socket])
buffers[socket].slice!(bytes_written)
writables.delete(socket) if buffers[socket].empty?
p :server_write
end
end
end
server_bound_barrier.pop
socket = TCPSocket.new('localhost', server_port)
loop do
r, w, _ = IO.select([socket], [socket], nil, nil)
if w && w.include?(socket)
socket.write_nonblock('hello')
p :client_write
end
if r && r.include?(socket)
# this should never raise EAGAIN, nor does it in JRuby 1.7 or MRI
socket.read_nonblock(2*16)
p :client_read
end
end
$ rvm jruby-head do ruby --version
jruby 9000.dev-SNAPSHOT (2.1.2p142) 2014-11-05 624823a Java HotSpot(TM) 64-Bit Server VM 25.0-b70 on 1.8.0-b132 +jit [darwin-x86_64]
$ rvm jruby-head@ione do ruby discard_server_test.rb
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:server_read
:client_write
:server_read
:client_write
:client_write:server_read
:client_write
:server_read
:client_write
:server_read
:client_write
:server_read
:client_write
:client_write
:server_read
:client_write
:server_read
:client_write
:server_read
:client_write
:server_read:client_write
:server_read
Compiler.java:78:in `__file__': java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
from Compiler.java:89:in `load'
from Ruby.java:805:in `runScript'
from Ruby.java:798:in `runScript'
from Ruby.java:749:in `runNormally'
from Ruby.java:559:in `runFromMain'
from Main.java:405:in `doRunFromMain'
from Main.java:300:in `internalRun'
from Main.java:227:in `run'
from Main.java:199:in `main'
Caused by:
NativeMethodAccessorImpl.java:-2:in `invoke0': java.lang.reflect.InvocationTargetException
from NativeMethodAccessorImpl.java:62:in `invoke'
from DelegatingMethodAccessorImpl.java:43:in `invoke'
from Method.java:483:in `invoke'
from Compiler.java:72:in `__file__'
from Compiler.java:89:in `load'
from Ruby.java:805:in `runScript'
from Ruby.java:798:in `runScript'
from Ruby.java:749:in `runNormally'
from Ruby.java:559:in `runFromMain'
from Main.java:405:in `doRunFromMain'
from Main.java:300:in `internalRun'
from Main.java:227:in `run'
from Main.java:199:in `main'
Caused by:
AbstractSelectableChannel.java:199:in `register': java.lang.IllegalArgumentException
from SelectableChannel.java:280:in `register'
from OpenFile.java:503:in `ready'
from OpenFile.java:444:in `waitWritable'
from OpenFile.java:453:in `waitWritable'
from OpenFile.java:422:in `io_fflush'
from RubyIO.java:2007:in `flushRaw'
from RubyIO.java:1991:in `flush'
from RubyKernel.java:498:in `p'
from RubyKernel$INVOKER$s$0$0$p.gen:-1:in `call'
from JavaMethod.java:679:in `call'
from DynamicMethod.java:206:in `call'
from CachingCallSite.java:155:in `call'
from tmp/jruby_9k_nbio.rb:-1:in `invokeOther13:p'
from tmp/jruby_9k_nbio.rb:33:in `\=tmp\|jruby_9k_nbio\,rb_CLOSURE_4__tmp\|jruby_9k_nbio\,rb_3'
from CompiledIRBlockBody.java:66:in `commonYieldPath'
from IRBlockBody.java:76:in `yieldSpecific'
from Block.java:116:in `yieldSpecific'
from RubyKernel.java:1282:in `loop'
from RubyKernel$INVOKER$s$0$0$loop.gen:-1:in `call'
from CachingCallSite.java:285:in `cacheAndCall'
from CachingCallSite.java:137:in `callBlock'
from CachingCallSite.java:141:in `call'
from tmp/jruby_9k_nbio.rb:-1:in `invokeOther20:loop'
from tmp/jruby_9k_nbio.rb:30:in `__script__'
from NativeMethodAccessorImpl.java:-2:in `invoke0'
from NativeMethodAccessorImpl.java:62:in `invoke'
from DelegatingMethodAccessorImpl.java:43:in `invoke'
from Method.java:483:in `invoke'
from Compiler.java:72:in `__file__'
from Compiler.java:89:in `load'
from Ruby.java:805:in `runScript'
from Ruby.java:798:in `runScript'
from Ruby.java:749:in `runNormally'
from Ruby.java:559:in `runFromMain'
from Main.java:405:in `doRunFromMain'
from Main.java:300:in `internalRun'
from Main.java:227:in `run'
from Main.java:199:in `main'
$ rvm jruby-head do ruby --version
jruby 9000.dev-SNAPSHOT (2.1.2p142) 2014-11-05 624823a Java HotSpot(TM) 64-Bit Server VM 25.0-b70 on 1.8.0-b132 +jit [darwin-x86_64]
$ rvm jruby-head@ione do ruby discard_server_test.rb
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:server_read
:client_write
:server_read
:server_read
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
Exception in thread "Ruby-0-Thread-1: tmp/jruby_9k_nbio.rb:1" :client_write
java.lang.NullPointerException
:client_write
at org.jruby.util.io.OpenFile.waitWritable(OpenFile.java:437)
at org.jruby.util.io.OpenFile.waitWritable(OpenFile.java:453)
at org.jruby.util.io.OpenFile.io_fflush(OpenFile.java:422)
at org.jruby.RubyIO.flushRaw(RubyIO.java:2007)
at org.jruby.RubyIO.flush(RubyIO.java:1991)
at org.jruby.RubyKernel.p(RubyKernel.java:498)
at org.jruby.RubyKernel$INVOKER$s$0$0$p.call(RubyKernel$INVOKER$s$0$0$p.gen)
at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:679)
at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:206)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:155)
at tmp.jruby_9k_nbio.invokeOther5:p(tmp/jruby_9k_nbio.rb)
:client_write
at tmp.jruby_9k_nbio.\=tmp\|jruby_9k_nbio\,rb_CLOSURE_1_CLOSURE_2_CLOSURE_3__tmp\|jruby_9k_nbio\,rb_CLOSURE_1_CLOSURE_2_2(tmp/jruby_9k_nbio.rb:20)
at org.jruby.runtime.CompiledIRBlockBody.commonYieldPath(CompiledIRBlockBody.java:66)
at org.jruby.runtime.IRBlockBody.doYield(IRBlockBody.java:136)
at org.jruby.runtime.BlockBody.yield(BlockBody.java:82)
at org.jruby.runtime.Block.yield(Block.java:147)
at org.jruby.RubyArray.each(RubyArray.java:1546)
at org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen)
at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:135)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:141)
at tmp.jruby_9k_nbio.invokeOther7:each(tmp/jruby_9k_nbio.rb)
at tmp.jruby_9k_nbio.\=tmp\|jruby_9k_nbio\,rb_CLOSURE_1_CLOSURE_2__tmp\|jruby_9k_nbio\,rb_CLOSURE_1_1(tmp/jruby_9k_nbio.rb:14)
at org.jruby.runtime.CompiledIRBlockBody.commonYieldPath(CompiledIRBlockBody.java:66)
:client_write
at org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:76)
at org.jruby.runtime.Block.yieldSpecific(Block.java:116)
at org.jruby.RubyKernel.loop(RubyKernel.java:1282)
at org.jruby.RubyKernel$INVOKER$s$0$0$loop.call(RubyKernel$INVOKER$s$0$0$loop.gen)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:285)
at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:137)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:141)
at tmp.jruby_9k_nbio.invokeOther10:loop(tmp/jruby_9k_nbio.rb)
at tmp.jruby_9k_nbio.\=tmp\|jruby_9k_nbio\,rb_CLOSURE_1__tmp\|jruby_9k_nbio\,rb_0(tmp/jruby_9k_nbio.rb:12)
at org.jruby.runtime.CompiledIRBlockBody.commonYieldPath(CompiledIRBlockBody.java:66)
at org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:67)
at org.jruby.runtime.Block.call(Block.java:106)
at org.jruby.RubyProc.call(RubyProc.java:301)
at org.jruby.RubyProc.call(RubyProc.java:230)
at org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:99)
:client_write
at java.lang.Thread.run(Thread.java:744)
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
Errno::EPIPE: Broken pipe - No message available
write_nonblock at org/jruby/RubyIO.java:1299
tmp/jruby_9k_nbio.rb_CLOSURE_4__tmp/jruby_9k_nbio.rb_3 at tmp/jruby_9k_nbio.rb:32
loop at org/jruby/RubyKernel.java:1282
__script__ at tmp/jruby_9k_nbio.rb:30
$ rvm jruby-head do ruby --version
jruby 9000.dev-SNAPSHOT (2.1.2p142) 2014-11-05 624823a Java HotSpot(TM) 64-Bit Server VM 25.0-b70 on 1.8.0-b132 +jit [darwin-x86_64]
$ rvm jruby-head@ione do ruby discard_server_test.rb
:client_write
:client_write
:client_write
:client_write
:server_read
:client_write
:server_read
:client_write
:client_write
:server_read
:client_write
:server_read
:client_write
:server_read
:client_write
:client_write
:server_read
:client_write
:server_read
:client_write
:client_write
:server_read
:client_write
:server_read
:server_read
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
Exception in thread "Ruby-0-Thread-1: tmp/jruby_9k_nbio.rb:1" :client_write
:client_write
java.lang.IllegalArgumentException
at java.nio.channels.spi.AbstractSelectableChannel.register(AbstractSelectableChannel.java:199):client_write
at java.nio.channels.SelectableChannel.register(SelectableChannel.java:280)
at org.jruby.util.io.OpenFile.ready(OpenFile.java:503)
at org.jruby.util.io.OpenFile.waitWritable(OpenFile.java:444)
at org.jruby.util.io.OpenFile.waitWritable(OpenFile.java:453)
at org.jruby.util.io.OpenFile.io_fflush(OpenFile.java:422)
at org.jruby.RubyIO.flushRaw(RubyIO.java:2007)
at org.jruby.RubyIO.flush(RubyIO.java:1991)
at org.jruby.RubyKernel.p(RubyKernel.java:498)
at org.jruby.RubyKernel$INVOKER$s$0$0$p.call(RubyKernel$INVOKER$s$0$0$p.gen)
:client_write
at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:679)
at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:206)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:155)
at tmp.jruby_9k_nbio.invokeOther5:p(tmp/jruby_9k_nbio.rb)
at tmp.jruby_9k_nbio.\=tmp\|jruby_9k_nbio\,rb_CLOSURE_1_CLOSURE_2_CLOSURE_3__tmp\|jruby_9k_nbio\,rb_CLOSURE_1_CLOSURE_2_2(tmp/jruby_9k_nbio.rb:20)
at org.jruby.runtime.CompiledIRBlockBody.commonYieldPath(CompiledIRBlockBody.java:66)
at org.jruby.runtime.IRBlockBody.doYield(IRBlockBody.java:136)
at org.jruby.runtime.BlockBody.yield(BlockBody.java:82)
at org.jruby.runtime.Block.yield(Block.java:147)
at org.jruby.RubyArray.each(RubyArray.java:1546)
at org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen)
at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:135)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:141)
at tmp.jruby_9k_nbio.invokeOther7:each(tmp/jruby_9k_nbio.rb)
:client_write
at tmp.jruby_9k_nbio.\=tmp\|jruby_9k_nbio\,rb_CLOSURE_1_CLOSURE_2__tmp\|jruby_9k_nbio\,rb_CLOSURE_1_1(tmp/jruby_9k_nbio.rb:14)
at org.jruby.runtime.CompiledIRBlockBody.commonYieldPath(CompiledIRBlockBody.java:66)
at org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:76)
at org.jruby.runtime.Block.yieldSpecific(Block.java:116)
at org.jruby.RubyKernel.loop(RubyKernel.java:1282)
at org.jruby.RubyKernel$INVOKER$s$0$0$loop.call(RubyKernel$INVOKER$s$0$0$loop.gen)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:285)
at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:137)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:141)
at tmp.jruby_9k_nbio.invokeOther10:loop(tmp/jruby_9k_nbio.rb)
at tmp.jruby_9k_nbio.\=tmp\|jruby_9k_nbio\,rb_CLOSURE_1__tmp\|jruby_9k_nbio\,rb_0(tmp/jruby_9k_nbio.rb:12)
at org.jruby.runtime.CompiledIRBlockBody.commonYieldPath(CompiledIRBlockBody.java:66)
:client_write
at org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:67)
at org.jruby.runtime.Block.call(Block.java:106)
at org.jruby.RubyProc.call(RubyProc.java:301)
at org.jruby.RubyProc.call(RubyProc.java:230)
at org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:99)
at java.lang.Thread.run(Thread.java:744)
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
:client_write
Errno::EPIPE: Broken pipe - No message available
write_nonblock at org/jruby/RubyIO.java:1299
tmp/jruby_9k_nbio.rb_CLOSURE_4__tmp/jruby_9k_nbio.rb_3 at tmp/jruby_9k_nbio.rb:32
loop at org/jruby/RubyKernel.java:1282
__script__ at tmp/jruby_9k_nbio.rb:30
$ rvm jruby-head do ruby --version
jruby 9000.dev-SNAPSHOT (2.1.2p142) 2014-11-05 624823a Java HotSpot(TM) 64-Bit Server VM 25.0-b70 on 1.8.0-b132 +jit [darwin-x86_64]
$ rvm jruby-head@ione do ruby echo_server_test.rb
:client_write
:server_read
:client
:server
#<IO::EAGAINWaitReadable: Resource temporarily unavailable - errno backtraces disabled; run with -Xerrno.backtrace=true to enable>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment