From ea7d428c1b3662d3381ec168737b690d0f82aeba Mon Sep 17 00:00:00 2001 From: "roberto@dexter" Date: Wed, 27 Jul 2011 11:11:30 +0200 Subject: [PATCH] added UWSGI.signal_registered --- config17.ru | 3 +++ plugins/rack/rack_plugin.c | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/config17.ru b/config17.ru index 159e1317..4dba365c 100644 --- a/config17.ru +++ b/config17.ru @@ -15,6 +15,9 @@ UWSGI.add_rb_timer(17 , 2) UWSGI.add_timer(17 , 1) UWSGI.add_file_monitor(30 , '/tmp') +puts UWSGI.signal_registered(1) +puts UWSGI.signal_registered(17) + run lambda { |env| UWSGI.signal(17) [200, {'Content-Type'=>'text/plain'}, StringIO.new("Hello World!\n")] diff --git a/plugins/rack/rack_plugin.c b/plugins/rack/rack_plugin.c index fe399e62..5338894a 100644 --- a/plugins/rack/rack_plugin.c +++ b/plugins/rack/rack_plugin.c @@ -186,6 +186,18 @@ VALUE require_rails(VALUE arg) { VALUE init_rack_app(VALUE); +VALUE uwsgi_ruby_signal_registered(VALUE *class, VALUE signum) { + + uint8_t uwsgi_signal = NUM2INT(signum); + + if (uwsgi_signal_registered(uwsgi_signal)) { + return Qtrue; + } + + return Qfalse; +} + + VALUE uwsgi_ruby_register_signal(VALUE *class, VALUE signum, VALUE sigkind, VALUE rbhandler) { uint8_t uwsgi_signal = NUM2INT(signum); @@ -407,6 +419,7 @@ int uwsgi_rack_init(){ rb_define_module_function(rb_uwsgi_embedded, "async_connect", uwsgi_ruby_async_connect, 1); rb_define_module_function(rb_uwsgi_embedded, "signal", uwsgi_ruby_signal, 1); rb_define_module_function(rb_uwsgi_embedded, "register_signal", uwsgi_ruby_register_signal, 3); + rb_define_module_function(rb_uwsgi_embedded, "signal_registered", uwsgi_ruby_signal_registered, 1); rb_define_module_function(rb_uwsgi_embedded, "add_cron", rack_uwsgi_add_cron, 6); rb_define_module_function(rb_uwsgi_embedded, "add_timer", rack_uwsgi_add_timer, 2); rb_define_module_function(rb_uwsgi_embedded, "add_rb_timer", rack_uwsgi_add_rb_timer, 2);