about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2010-12-30 08:32:23 +0000
committerEric Wong <normalperson@yhbt.net>2011-01-04 16:21:17 -0800
commit1f28534fce2b30bf3099ea0d014b62ac4a3205f0 (patch)
tree84bb61d6c14a6c2196dccab2d3944b049d039718
parenta471d10cd793c4dc7182b4e588a21d6ac7c41de7 (diff)
downloadrainbows-1f28534fce2b30bf3099ea0d014b62ac4a3205f0.tar.gz
Creating unnecessary string objects for every response
is not a good idea.
-rw-r--r--lib/rainbows/coolio/master.rb5
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