This is a blocker.
This can be easily reproduced using
EM.run do
EIO.eventmachine_handler # let libeio notify when there's result callbacks to invoke
EIO.open(path, EIO::RDWR|EIO::CREAT) do |fd|
EIO.write(fd, "buf contents: \0hello") do |b| # put the zero byte using \0
EM.stop_event_loop
end
end
end