Project

General

Profile

Actions

Feature #1038

closed

Signal.trapのcommandにSymbol

Added by znz (Kazuhiro NISHIYAMA) about 15 years ago. Updated almost 13 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-dev:37823]

Description

=begin
Signal.trapの第1引数のsignalの方はSymbolでも受け付けるので
第2引数のcommandの方も"SIG_IGN"などをStringだけではなく
Symbolでも受け付けるようにしてほしいです。

% ruby-trunk -ve 'Signal.trap(:CHLD,:IGNORE);fork{exec("true")};sleep 1'
ruby 1.9.1p5000 (2009-01-21 trunk 21717) [i686-linux]
-e:1:in sleep': undefined method call' for :IGNORE:Symbol (NoMethodError)
from -e:1:in `'
% ruby-trunk -ve 'Signal.trap(:CHLD,"IGNORE");fork{exec("true")};sleep 1'
ruby 1.9.1p5000 (2009-01-21 trunk 21717) [i686-linux]
%
=end

Actions #1

Updated by nobu (Nobuyoshi Nakada) about 15 years ago

=begin
なかだです。

At Thu, 22 Jan 2009 18:20:53 +0900,
Kazuhiro NISHIYAMA wrote in [ruby-dev:37823]:

Signal.trapの第1引数のsignalの方はSymbolでも受け付けるので
第2引数のcommandの方も"SIG_IGN"などをStringだけではなく
Symbolでも受け付けるようにしてほしいです。

こんなとこでしょうか。


Index: signal.c

--- signal.c (revision 21724)
+++ signal.c (working copy)
@@ -754,4 +754,8 @@ trap_handler(VALUE *cmd, int sig)
else {
command = rb_check_string_type(*cmd);

  • if (NIL_P(command) && SYMBOL_P(*cmd)) {
  •  command = rb_id2str(SYM2ID(*cmd));
    
  •  if (!command) rb_raise(rb_eArgError, "bad handler");
    
  • }
    if (!NIL_P(command)) {
    SafeStringValue(command); /* taint check */

--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦

=end

Actions #2

Updated by matz (Yukihiro Matsumoto) about 15 years ago

=begin
まつもと ゆきひろです

In message "Re: [ruby-dev:37828] Re: [Feature #1038] Signal.trapのcommandにSymbol"
on Fri, 23 Jan 2009 12:50:57 +0900, Nobuyoshi Nakada writes:
|At Thu, 22 Jan 2009 18:20:53 +0900,
|Kazuhiro NISHIYAMA wrote in [ruby-dev:37823]:
|> Signal.trapの第1引数のsignalの方はSymbolでも受け付けるので
|> 第2引数のcommandの方も"SIG_IGN"などをStringだけではなく
|> Symbolでも受け付けるようにしてほしいです。
|
|こんなとこでしょうか。

コミットしてください。

=end

Actions #3

Updated by nobu (Nobuyoshi Nakada) about 15 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
Applied in changeset r21746.
=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0