From: matz@... Date: 2017-08-31T09:06:39+00:00 Subject: [ruby-core:82578] [Ruby trunk Feature#13639] Add "RTMIN" and "RTMAX" to Signal.list Issue #13639 has been updated by matz (Yukihiro Matsumoto). I propose * Signal::RTMIN * Signal::RTMAX instead. Matz. ---------------------------------------- Feature #13639: Add "RTMIN" and "RTMAX" to Signal.list https://bugs.ruby-lang.org/issues/13639#change-66399 * Author: ksss (Yuki Kurihara) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- I propose to add the key "RTMIN" and "RTMAX" to Signal.list Currently, We can't know signal number for realtime-signal at own environment in Ruby. And it's not potable if hard code number literal. So, How about this idea? Use case: ~~~ruby unless Signal.list["RTMIN"] raise "realtime-signal does not supported" end MY_SIGNAL = Signal.list["RTMIN"] + 1 Signal.trap(MY_SIGNAL) do |i| puts "Hello MY_SIGNAL" end Process.kill(MY_SIGNAL, $$) #=> "Hello MY_SIGNAL" ~~~ Patch: ~~~diff diff --git a/signal.c b/signal.c index 8ee0963b8a..f17836350a 100644 --- a/signal.c +++ b/signal.c @@ -1381,6 +1381,12 @@ sig_list(void) for (sigs = siglist; sigs->signm; sigs++) { rb_hash_aset(h, rb_fstring_cstr(sigs->signm), INT2FIX(sigs->signo)); } +#ifdef SIGRTMIN + rb_hash_aset(h, rb_fstring_cstr("RTMIN"), INT2FIX(SIGRTMIN)); +#endif +#ifdef SIGRTMAX + rb_hash_aset(h, rb_fstring_cstr("RTMAX"), INT2FIX(SIGRTMAX)); +#endif return h; } ~~~ Inspired by https://github.com/ksss/mruby-signal/pull/3 and @takumakume -- https://bugs.ruby-lang.org/ Unsubscribe: