pkgsrc/parallel/glunix/patches/patch-ah

102 lines
2.4 KiB
Text
Raw Normal View History

$NetBSD: patch-ah,v 1.3 2005/05/29 14:38:33 wiz Exp $
--- glunix/src/signal/csignal.cc.orig 1996-10-25 00:40:47.000000000 +0200
+++ glunix/src/signal/csignal.cc
@@ -111,6 +111,9 @@ static Debug_Level signal_debugLevel;
#ifdef __svr4__
#define MAX_SIGNAL 35
#endif
+#ifdef __NetBSD__
+#define MAX_SIGNAL NSIG
+#endif
#define SIGNAL_MAX_HANDLERS 5
@@ -216,12 +219,18 @@ Signal_Initialize(void)
sigaddset(&allSignals, SIGTERM);
sigaddset(&allSignals, SIGUSR1);
sigaddset(&allSignals, SIGUSR2);
+#ifndef __NetBSD__
sigaddset(&allSignals, SIGCLD);
+#endif
sigaddset(&allSignals, SIGCHLD);
+#ifndef __NetBSD__
sigaddset(&allSignals, SIGPWR);
+#endif
sigaddset(&allSignals, SIGWINCH);
sigaddset(&allSignals, SIGURG);
+#ifndef __NetBSD__
sigaddset(&allSignals, SIGPOLL);
+#endif
sigaddset(&allSignals, SIGIO);
sigaddset(&allSignals, SIGSTOP);
sigaddset(&allSignals, SIGTSTP);
@@ -232,8 +241,9 @@ Signal_Initialize(void)
sigaddset(&allSignals, SIGPROF);
sigaddset(&allSignals, SIGXCPU);
sigaddset(&allSignals, SIGXFSZ);
+#ifndef __NetBSD__
sigaddset(&allSignals, SIGWAITING);
-
+#endif
initialized = True;
cleanedUp = False;
@@ -243,7 +253,7 @@ Signal_Initialize(void)
NULL /* callback function */, 0 /* callback arg */));
#ifdef DEBUG
- debug_cleanupCallbacks->Add((void (*)(int, void *))Signal_Cleanup, NULL);
+ debug_cleanupCallbacks->Add((void (*)(int, void *))Signal_Cleanup, 0);
#endif
return True;
@@ -438,7 +448,11 @@ Signal_CheckInterest(int sig)
} else {
if (found) {
// Otherwise, we're not catching it and we should be
+#ifdef __NetBSD__
+ signal(sig, CatchSignal);
+#else
sigset(sig, CatchSignal);
+#endif
}
}
return;
@@ -863,11 +877,18 @@ Signal_DispatchMode(void)
Bool
Signal_Hold(int sig)
{
- if (sighold(sig) < 0) {
- return False;
- } else {
- return True;
- }
+#ifdef __NetBSD__
+int i;
+ i = sigsetmask(0);
+ i &= ~sigmask(sig);
+ if (sigsetmask(i) < 0) {
+#else
+ if (sighold(sig) < 0) {
+#endif
+ return False;
+ } else {
+ return True;
+ }
}
/******************************************************************************
@@ -885,7 +906,11 @@ Signal_Hold(int sig)
Bool
Signal_Release(int sig)
{
+#ifdef __NetBSD__
+ if (sigsetmask(sigmask(sig)) < 0 ) {
+#else
if (sigrelse(sig) < 0) {
+#endif
return False;
} else {
return True;