diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-03-10 02:12:46 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-03-10 02:12:46 +0000 |
commit | eb12922fdc860ce780617a3b8302cad7c6ff9666 (patch) | |
tree | 3e8798a2eed91138190f217ac1ab39179633d807 | |
parent | eab2b76b68b68e964a9b43b50fc8ea387f719f56 (diff) | |
download | sleepy_penguin-eb12922fdc860ce780617a3b8302cad7c6ff9666.tar.gz |
I know of no other way to support them in Ruby
-rw-r--r-- | ext/sleepy_penguin/signalfd.c | 13 | ||||
-rw-r--r-- | test/test_signalfd.rb | 5 |
2 files changed, 18 insertions, 0 deletions
diff --git a/ext/sleepy_penguin/signalfd.c b/ext/sleepy_penguin/signalfd.c index 90d2a71..2752262 100644 --- a/ext/sleepy_penguin/signalfd.c +++ b/ext/sleepy_penguin/signalfd.c @@ -1,5 +1,6 @@ #ifdef HAVE_SYS_SIGNALFD_H #include "sleepy_penguin.h" +#include <signal.h> #include <sys/signalfd.h> static ID id_for_fd, id_list; static VALUE ssi_members; @@ -294,6 +295,18 @@ void sleepy_penguin_init_signalfd(void) NODOC_CONST(cSigInfo, "MEMBERS", ssi_members); + /* + * the minimum signal number for real-time signals, + * 34 on NPTL-based systems + */ + rb_define_const(cSignalFD, "RTMIN", INT2NUM(SIGRTMIN)); + + /* + * the maximum signal number for real-time signals, + * 64 on NPTL-based systems + */ + rb_define_const(cSignalFD, "RTMAX", INT2NUM(SIGRTMAX)); + #define SSI_READER(FIELD) do { \ rb_define_method(cSigInfo, #FIELD, ssi_##FIELD, 0); \ rb_ary_push(ssi_members, ID2SYM(rb_intern(#FIELD))); \ diff --git a/test/test_signalfd.rb b/test/test_signalfd.rb index a135834..0330e70 100644 --- a/test/test_signalfd.rb +++ b/test/test_signalfd.rb @@ -22,6 +22,11 @@ class TestSignalFD < Test::Unit::TestCase trap(:USR2, "DEFAULT") end + def test_rt_constants + assert [33,34].include?(SignalFD::RTMIN) + assert_equal 64, SignalFD::RTMAX + end + def test_new_with_flags @sfd = SignalFD.new(%w(USR1), [:CLOEXEC,:NONBLOCK]) assert_instance_of SignalFD, @sfd |