Can you not just pass `Thread.new blk` or something?  As it is, you're converting a block to a proc then building a block that calls the block... why not just block->block it?