From 6f6b9a9b54fe87cc85fc548c339e3a48b476f04a Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 22 Feb 2005 14:50:33 +0000 Subject: [PATCH] * signal.c (ruby_signal, ruby_nativethread_signal): must be valid as expressions, not only statements. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ signal.c | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index dba91a47d7..4d6f8acd02 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Feb 22 23:50:26 2005 Nobuyoshi Nakada + + * signal.c (ruby_signal, ruby_nativethread_signal): must be valid as + expressions, not only statements. + Tue Feb 22 07:24:57 2005 Nobuyoshi Nakada * parse.y (parser_yylex): identifier after dot must not be a variable. diff --git a/signal.c b/signal.c index 000fa5a0c2..63cb18cb49 100644 --- a/signal.c +++ b/signal.c @@ -386,9 +386,19 @@ posix_nativethread_signal(signum, handler) } #endif #else /* !POSIX_SIGNAL */ -#define ruby_signal(sig,handler) {rb_trap_accept_nativethreads[sig] = 0; signal((sig),(handler));} +#define ruby_signal(sig,handler) (rb_trap_accept_nativethreads[sig] = 0, signal((sig),(handler))) #ifdef HAVE_NATIVETHREAD -#define ruby_nativethread_signal(sig,handler) {signal((sig),(handler));rb_trap_accept_nativethreads[sig] = 1;} +static sighandler_t +ruby_nativethread_signal(signum, handler) + int signum; + sighandler_t handler; +{ + sighandler_t old; + + old = signal(signum, handler); + rb_trap_accept_nativethreads[signum] = 1; + return old; +} #endif #endif