Actions
Bug #7951
closedCannot rescue SignalException in 1.9.3 or 2.0.0
Description
When running the example provided on http://www.ruby-doc.org/core-1.9.3/SignalException.html we find that neither Ruby 1.9.3p392 nor Ruby 2.0.0p0 are able to rescue SignalException:
$ cat <<EOF >signal_exception_test.rb
puts "#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}"
begin
Process.kill('HUP',Process.pid)
rescue SignalException => e
puts "received Exception #{e}"
end
EOF
$ rvm 1.8.7,1.9.3,2.0.0 do ruby signal_exception_test.rb
1.8.7p371
received Exception SIGHUP
1.9.3p392
/Users/jnh/.rvm/scripts/set: line 20: 99759 Hangup: 1 "${args[@]}"
2.0.0p0
/Users/jnh/.rvm/scripts/set: line 20: 99816 Hangup: 1 "${args[@]}"
Updated by kosaki (Motohiro KOSAKI) over 11 years ago
Following modified script works fine. That is a issue of YARV signal handling.
puts "#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}"
begin
Process.kill('HUP',Process.pid)
sleep 0.1
rescue SignalException => e
puts "received Exception #{e}"
end
Updated by kosaki (Motohiro KOSAKI) over 11 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r39501.
James, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- error.c: clarify a document of SignalException. Process.kill()
doesn't have any guarantee when signal will be delivered.
[Bug #7951] [ruby-core:52864]
Updated by kosaki (Motohiro KOSAKI) over 11 years ago
I changed a doc because the example has a mistake of usage of Process.kill(). Process.kill() doesn't have any guarantee when signal will be delivered.
Updated by usa (Usaku NAKAMURA) over 7 years ago
- Backport deleted (
2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN)
Actions
Like0
Like0Like0Like0Like0Like0