[ruby-trunk - Feature #5613][Open] Signal.termsigname メソッドの追加

Issue #5613 has been reported by Motohiro KOSAKI.


Feature #5613: Signal.termsigname メソッドの追加
http://redmine.ruby-lang.org/issues/5613

Author: Motohiro KOSAKI
Status: Open
Priority: Normal
Assignee:
Category:
Target version:

現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、
(シグナル番号はポータブルじゃないから)結局

signame = Signal.list.invert[$?.termsig]

とやってシグナル名に変換する必要があるように思います。毎回。
ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。

Issue #5613 has been updated by mame (Yusuke E.).

Status changed from Open to Assigned
Assignee set to kosaki (Motohiro KOSAKI)

パッチ晒して「反対がなければコミットします」って言えばいいんじゃないかと思います。


Yusuke E. [email protected]

Feature #5613: Signal.termsigname メソッドの追加
https://bugs.ruby-lang.org/issues/5613#change-25258

Author: kosaki (Motohiro KOSAKI)
Status: Assigned
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category:
Target version:

現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、
(シグナル番号はポータブルじゃないから)結局

signame = Signal.list.invert[$?.termsig]

とやってシグナル名に変換する必要があるように思います。毎回。
ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。

Issue #5613 has been updated by kosaki (Motohiro KOSAKI).

了解しました

Feature #5613: Signal.termsigname メソッドの追加
https://bugs.ruby-lang.org/issues/5613#change-25329

Author: kosaki (Motohiro KOSAKI)
Status: Assigned
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category:
Target version:

現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、
(シグナル番号はポータブルじゃないから)結局

signame = Signal.list.invert[$?.termsig]

とやってシグナル名に変換する必要があるように思います。毎回。
ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。

Issue #5613 has been updated by nagachika (Tomoyuki C.).

パッチを拝見しました。
ものすごーく trivial な点で恐縮なのですが
char* signame;

char *signame;
(アスタリスクの位置を変数名の直前に)のほうが周辺の変数宣言と揃っていて良いかと思います。

Feature #5613: Signal.termsigname メソッドの追加
https://bugs.ruby-lang.org/issues/5613#change-32660

Author: kosaki (Motohiro KOSAKI)
Status: Assigned
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category: core
Target version: 2.0.0

現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、
(シグナル番号はポータブルじゃないから)結局

signame = Signal.list.invert[$?.termsig]

とやってシグナル名に変換する必要があるように思います。毎回。
ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。

$B%Q%C%A$rGR8+$7$^$7$?!#(B
$B$b$N$9$4!<$/(B trivial [email protected]$G62=L$J$N$G$9$,(B
char* signame;
$B$O(B
char *signame;

($B%"%9%?%j%9%/$N0LCV$rJQ?tL>$ND>A0$K(B)$B$N$[$&$,<~JU$NJQ?[email protected]@$HB7$C$F$$$FNI$$$+$H;W$$$^$9!#(B

$B$"$l$(!#[email protected]$1$:[email protected]$m$&!#D>$7$^$9!#$9$$$^$;$s(B

Issue #5613 has been updated by kosaki (Motohiro KOSAKI).

File signame.patch added
Category set to core
Target version set to 2.0.0

以下のようなパッチで作ってみました

    • call-seq:
    • Signal.signame(signo) -> string
    • convert signal number to signal name
    • Signal.trap(“INT”) { |signo| puts Signal.signame(signo) }
    • Process.kill(“INT”, 0)
    • produces:
    • INT
      

以下のデザインにしました。

・名前は Signal.signame
・インスタンスメソッドではなく、モジュールのメソッド。これはtrapハンドラの引数がsignalオブジェクトではなくsignal
numberが数値で渡ってくるため
・返ってくるのは文字列。高速化したいなら後から文字列キャッシュ入れるだけなのでSymbolにはしなかった
・文字列は SIGINT ではなく INTのようなSIGを除いた形式。これは Signal.list の結果に合わせた

反対がなければコミットしようと思います


Feature #5613: Signal.termsigname メソッドの追加
https://bugs.ruby-lang.org/issues/5613#change-32643

Author: kosaki (Motohiro KOSAKI)
Status: Assigned
Priority: Normal
Assignee: kosaki (Motohiro KOSAKI)
Category: core
Target version: 2.0.0

現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、
(シグナル番号はポータブルじゃないから)結局

signame = Signal.list.invert[$?.termsig]

とやってシグナル名に変換する必要があるように思います。毎回。
ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs