Issue #4197 has been updated by Benoit Daloze.


Hi,
On 5 February 2011 16:08, Tomoyuki Chikanaga wrote:
> Hi,
> In Benchmark#bmbm, I think it's better to use ensure clause instead of Object#tap to restore STDOUT.sync.

Do you have a particular scenario in mind ?
(If it is an Interrupt, I think restoring STDOUT's sync is not relevant.)

#tap is used to return the list of the Benchmark::Tms.
So, your patch would need to store that list in a variable, and return it.

Also, sync would never be nil without ensure.
This extra check shows "ensure" is complicating things in this case.
So, I think it is overkill to use ensure here.

On IO#sync's subject, I thought once it would be nice to have a block form of IO#sync, which could use ensure.

Anyway, I am going to propose to move that print behavior in Report/Job, and I will probably use IO#flush, to make things simpler.
----------------------------------------
http://redmine.ruby-lang.org/issues/show/4197

----------------------------------------
http://redmine.ruby-lang.org