Shea Martin wrote: > >> It makes sense once you "wrap" your head around it ;) >> >> (Also, you might want, if possible, to use yield in worker, as well. >> It's more efficient.) >> > > Yeah, it seems dead obvious *now*. That is good to know about 'yield' > being more efficient. I always used the named Proc, as I prefer it > syntactically (and I always mispell yeild :D ). I will start using yield. > > ~S Just found my benchmark to back this assertion up: $ cat yield-vs-proc.rb require 'benchmark' def outer11(&bl) inner1(&bl) end def outer12(&bl) inner2(&bl) end def outer21 inner1 {yield} end def outer22 inner2 {yield} end def inner1(&bl) bl.call end def inner2 yield end n = 100000 Benchmark.bmbm(10) do |rpt| rpt.report("outer11") do n.times {outer11{}} end rpt.report("outer12") do n.times {outer12{}} end rpt.report("outer21") do n.times {outer21{}} end rpt.report("outer22") do n.times {outer22{}} end end __END__ Output: Rehearsal --------------------------------------------- outer11 0.890000 0.010000 0.900000 ( 0.894500) outer12 0.370000 0.000000 0.370000 ( 0.364880) outer21 0.770000 0.000000 0.770000 ( 0.776638) outer22 0.170000 0.000000 0.170000 ( 0.163393) ------------------------------------ total: 2.210000sec user system total real outer11 0.490000 0.000000 0.490000 ( 0.491969) outer12 0.400000 0.000000 0.400000 ( 0.396264) outer21 0.760000 0.000000 0.760000 ( 0.764508) outer22 0.160000 0.000000 0.160000 ( 0.161982) -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407