diff options
-rw-r--r-- | lib/dtas/unix_server.rb | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/dtas/unix_server.rb b/lib/dtas/unix_server.rb index 21261d3..3931239 100644 --- a/lib/dtas/unix_server.rb +++ b/lib/dtas/unix_server.rb @@ -93,17 +93,15 @@ class DTAS::UNIXServer # :nodoc: end def run_once - begin - # give IO.select one-shot behavior, snapshot and replace the watchlist - r = IO.select(@readers.keys, @writers.keys) or return - r[1].each do |io| - @writers.delete(io) - wait_ctl(io, io.writable_iter) - end - r[0].each do |io| - @readers.delete(io) - wait_ctl(io, io.readable_iter { |_io, msg| yield(_io, msg) }) - end + # give IO.select one-shot behavior, snapshot and replace the watchlist + r = IO.select(@readers.keys, @writers.keys) or return + r[1].each do |io| + @writers.delete(io) + wait_ctl(io, io.writable_iter) + end + r[0].each do |io| + @readers.delete(io) + wait_ctl(io, io.readable_iter { |_io, msg| yield(_io, msg) }) end end end |