diff options
author | Eric Wong <normalperson@yhbt.net> | 2010-12-30 08:32:23 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-01-04 16:21:17 -0800 |
commit | 1f28534fce2b30bf3099ea0d014b62ac4a3205f0 (patch) | |
tree | 84bb61d6c14a6c2196dccab2d3944b049d039718 /lib/rainbows/coolio/master.rb | |
parent | a471d10cd793c4dc7182b4e588a21d6ac7c41de7 (diff) | |
download | rainbows-1f28534fce2b30bf3099ea0d014b62ac4a3205f0.tar.gz |
Creating unnecessary string objects for every response is not a good idea.
Diffstat (limited to 'lib/rainbows/coolio/master.rb')
-rw-r--r-- | lib/rainbows/coolio/master.rb | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/rainbows/coolio/master.rb b/lib/rainbows/coolio/master.rb index 4877e8e..b253e67 100644 --- a/lib/rainbows/coolio/master.rb +++ b/lib/rainbows/coolio/master.rb @@ -7,15 +7,16 @@ class Rainbows::Coolio::Master < Coolio::IOWatcher @reader, @writer = Kgio::Pipe.new super(@reader) @queue = queue + @wbuf, @rbuf = "\0", "\0" end def <<(output) @queue << output - @writer.kgio_trywrite("\0") + @writer.kgio_trywrite(@wbuf) end def on_readable - if String === @reader.kgio_tryread(1) + if String === @reader.kgio_tryread(1, @rbuf) client, response = @queue.pop client.response_write(response) end |