diff --git a/lib/dripdrop/handlers.rb b/lib/dripdrop/handlers.rb index d6e7d61..b996397 100644 --- a/lib/dripdrop/handlers.rb +++ b/lib/dripdrop/handlers.rb @@ -44,12 +44,15 @@ def on_readable(mode, block) @thread = Thread.new do begin while message = @socket.recv - if mode == :parse - block.call(DripDrop::Message.parse(message)) - else - block.call(message) + EM::Deferrable.future(message) do |message| + puts 'recvd' + if mode == :parse + block.call(DripDrop::Message.parse(message)) + else + block.call(message) + end + end end - end rescue Exception => e puts e.inspect end