diff options
Diffstat (limited to 'lib/rainbows/writer_thread_spawn.rb')
-rw-r--r-- | lib/rainbows/writer_thread_spawn.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/rainbows/writer_thread_spawn.rb b/lib/rainbows/writer_thread_spawn.rb index 0e7d1a7..43e4f2c 100644 --- a/lib/rainbows/writer_thread_spawn.rb +++ b/lib/rainbows/writer_thread_spawn.rb @@ -23,7 +23,11 @@ module Rainbows::WriterThreadSpawn include Rainbows::Base def write_body(my_sock, body, range) # :nodoc: - my_sock.queue_body(body, range) + if body.respond_to?(:close) + Rainbows::SyncClose.new(body) { |body| my_sock.queue_body(body, range) } + else + my_sock.queue_body(body, range) + end end def process_client(client) # :nodoc: |