platform/shared/ruby/signal.c in rhodes-3.0.2 vs platform/shared/ruby/signal.c in rhodes-3.1.0.beta.1
- old
+ new
@@ -407,11 +407,11 @@
#ifdef __dietlibc__
#define sighandler_t sh_t
#endif
typedef RETSIGTYPE (*sighandler_t)(int);
-#ifdef SA_SIGINFO
+#if defined SA_SIGINFO && !defined __SYMBIAN32__
typedef void ruby_sigaction_t(int, siginfo_t*, void*);
#define SIGINFO_ARG , siginfo_t *info, void *ctx
#else
typedef RETSIGTYPE ruby_sigaction_t(int);
#define SIGINFO_ARG
@@ -456,11 +456,11 @@
#if 0
rb_trap_accept_nativethreads[signum] = 0;
#endif
sigemptyset(&sigact.sa_mask);
-#ifdef SA_SIGINFO
+#if defined SA_SIGINFO && !defined __SYMBIAN32__
sigact.sa_sigaction = (ruby_sigaction_t*)handler;
sigact.sa_flags = SA_SIGINFO;
#else
sigact.sa_handler = handler;
sigact.sa_flags = 0;
@@ -474,11 +474,11 @@
if (signum == SIGSEGV)
sigact.sa_flags |= SA_ONSTACK;
#endif
if (sigaction(signum, &sigact, &old) < 0) {
if (errno != 0 && errno != EINVAL) {
- rb_bug("sigaction error.\n");
+ rb_bug("sigaction error.\n");
}
}
return old.sa_handler;
}
@@ -532,11 +532,11 @@
#endif
void
rb_disable_interrupt(void)
{
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(__SYMBIAN32__)
sigset_t mask;
sigfillset(&mask);
sigdelset(&mask, SIGVTALRM);
sigdelset(&mask, SIGSEGV);
pthread_sigmask(SIG_SETMASK, &mask, NULL);
@@ -544,10 +544,10 @@
}
void
rb_enable_interrupt(void)
{
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(__SYMBIAN32__)
sigset_t mask;
sigemptyset(&mask);
pthread_sigmask(SIG_SETMASK, &mask, NULL);
#endif
}