From: Rick DeNatale Date: 2007-04-08T05:35:26+09:00 Subject: Re: rb_yield(), break, and C extensions On 4/7/07, Kent Sibilev wrote: > What I meant was that your cleanup code should be in my_ensure > function and not in func itself. Just to prove my point: > > $ cat t.rb > def test > puts 'pre' > yield > puts 'post' > ensure > puts 'ensure' > end > > test {break} > > $ ruby t.rb > pre > ensure Yes, this is better than my suggestion to wrap the block in a lambda since it covers not only returns but exceptions as well. -- Rick DeNatale My blog on Ruby http://talklikeaduck.denhaven2.com/