Actions
Bug #15886
closedreturn in rescue block breaks Timeout.timeout
Bug #15886:
return in rescue block breaks Timeout.timeout
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]
Description
Passing Timeout.timeout a block with a rescue clause that contains a return statement prevents Timeout::Error to be raised as expected.
Reproducer:
require 'timeout'
begin
Timeout.timeout(1) do
begin
sleep 10
ensure
puts "ensure block executed"
## commenting line below restores expected behaviour
return true
end
end
rescue Timeout::Error => e
puts "EXPECTED BEHAVIOUR: timeout error rescued"
end
Expected output:
ensure block executed
EXPECTED BEHAVIOR: timeout error rescued
Actual output:
ensure block executed
Looking in Redmine the following two issues appear related (but I lack the insight to tell for sure):
I apologize in advance if this issue is a duplicate.
Actions