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)
パッチ晒して「反対がなければコミットします」って言えばいいんじゃないかと思います。
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$[$&$,<[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
以下のようなパッチで作ってみました
-
-
- Signal.signame(signo) -> string
-
-
- convert signal number to signal name
-
-
- Signal.trap(“INT”) { |signo| puts Signal.signame(signo) }
-
-
-
-
-
以下のデザインにしました。
・名前は 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という文字列を返すメソッドの追加を提案します。