diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-02-06 06:19:09 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-02-06 06:19:09 +0000 |
commit | 53bac4f65d9430495c8043b239cc936012ea7a8d (patch) | |
tree | 8e7e520e1e50725e66fad8693181c650f7d77aee /lib/rainbows/queue_pool.rb | |
parent | 44eb53f5a5f1ea2e5aee93d0caf995f42b3179f7 (diff) | |
download | rainbows-53bac4f65d9430495c8043b239cc936012ea7a8d.tar.gz |
minimize &block usage for yield
No need to allocate a proc every time when we can just yield much more efficiently.
Diffstat (limited to 'lib/rainbows/queue_pool.rb')
-rw-r--r-- | lib/rainbows/queue_pool.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/rainbows/queue_pool.rb b/lib/rainbows/queue_pool.rb index 99cb9db..ce888d8 100644 --- a/lib/rainbows/queue_pool.rb +++ b/lib/rainbows/queue_pool.rb @@ -6,12 +6,12 @@ require 'thread' # This is NOT used for the ThreadPool class, since that class does not # need a userspace Queue. class Rainbows::QueuePool < Struct.new(:queue, :threads) - def initialize(size = 20, &block) + def initialize(size = 20) q = Queue.new self.threads = (1..size).map do Thread.new do while job = q.shift - block.call(job) + yield job end end end |