From: "deivid (David Rodríguez)" Date: 2013-06-15T00:41:12+09:00 Subject: [ruby-core:55491] [ruby-trunk - Bug #8489] Tracepoint API: B_RETURN_EVENT not triggered when "next" used Issue #8489 has been updated by deivid (David Rodr��guez). Yes @ko1, it works perfectly! @nagachika, forgive my ignorance but "Backport to 2.0.0" means the patch will be released with the next patchlevel release? Thanks a lot!! ---------------------------------------- Bug #8489: Tracepoint API: B_RETURN_EVENT not triggered when "next" used https://bugs.ruby-lang.org/issues/8489#change-39934 Author: deivid (David Rodr��guez) Status: Closed Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0p201 (2013-06-04) [i686-linux] Backport: 1.9.3: UNKNOWN, 2.0.0: REQUIRED I'm using the Tracepoint API in my gem and I notice that when the keyword next is used inside a block, a block return event (B_RETURN_EVENT) is not triggered. For example, I would expect the same number of B_CALL_EVENT and B_RETURN_EVENT in the piece of code: traceBlocks = TracePoint.new(:b_call, :b_return) do |tp| p "#{tp.event == :b_call ? 'Block called' : 'Block returned'}" end.enable do 3.times do next end end but instead there are 4 B_CALL_EVENT and 1 B_RETURN_EVENT. As I understand it, "next" causes the block to exit immediately, returning control to the iterator, which may invoke the block again, so I would say a block return event should be triggered. Thanks a lot. -- http://bugs.ruby-lang.org/