Feature #5613 closed
Signal.termsigname メソッドの追加
Added by kosaki (Motohiro KOSAKI) over 13 years ago.
Updated over 12 years ago.
Description
現状、$?.termsigでシグナル番号が得られますが番号なんかもらってもちっとも嬉しくなく、
(シグナル番号はポータブルじゃないから)結局
signame = Signal.list.invert[$?.termsig]
とやってシグナル名に変換する必要があるように思います。毎回。
ばかばかしいので、 termsignameという文字列を返すメソッドの追加を提案します。
Files
Status changed from Open to Assigned
Assignee set to kosaki (Motohiro KOSAKI)
パッチ晒して「反対がなければコミットします」って言えばいいんじゃないかと思います。
--
Yusuke Endoh mame@tsg.ne.jp
以下のようなパッチで作ってみました
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 の結果に合わせた
反対がなければコミットしようと思います
パッチを拝見しました。
ものすごーく trivial な点で恐縮なのですが
char* signame;
は
char *signame;
(アスタリスクの位置を変数名の直前に)のほうが周辺の変数宣言と揃っていて良いかと思います。
パッチを拝見しました。
ものすごーく trivial な点で恐縮なのですが
char* signame;
は
char *signame;
(アスタリスクの位置を変数名の直前に)のほうが周辺の変数宣言と揃っていて良いかと思います。
あれえ。なんでここだけずれちゃったんだろう。直します。すいません
Status changed from Assigned to Closed
% Done changed from 0 to 100
This issue was solved with changeset r37723.
Motohiro, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
signal.c (sig_signame): implements Signal.signame method
[Feature #5613 ]
test/ruby/test_signal.rb (test_signame): adds test for above
NEWS: add an item about above
Also available in: Atom
PDF
Like 0
Like 0 Like 0 Like 0 Like 0 Like 0 Like 0