From ab0f8ed43b863aeccbb98c8beae545cfeb40ee36 Mon Sep 17 00:00:00 2001 From: Tracy Di Marco White Date: Thu, 2 Jun 2005 05:40:53 +0000 Subject: [PATCH] netbsd-fileserver-shutdown-20050601 FIXES 16897 do what we do on darwin --- src/util/softsig.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/util/softsig.c b/src/util/softsig.c index 42044cbad..73e2e6f96 100644 --- a/src/util/softsig.c +++ b/src/util/softsig.c @@ -36,9 +36,9 @@ static pthread_t softsig_tid; static struct { void (*handler) (int); int pending; -#if !defined(AFS_DARWIN60_ENV) +#if !defined(AFS_DARWIN60_ENV) || !defined(AFS_NBSD_ENV) int fatal; -#endif /* !defined(AFS_DARWIN60_ENV) */ +#endif /* !defined(AFS_DARWIN60_ENV) || !defined(AFS_NBSD_ENV) */ int inited; } softsig_sigs[NSIG]; @@ -53,17 +53,17 @@ softsig_thread(void *arg) pthread_sigmask(SIG_BLOCK, &ss, &os); pthread_sigmask(SIG_SETMASK, &os, NULL); sigaddset(&ss, SIGUSR1); -#if defined(AFS_DARWIN60_ENV) +#if defined(AFS_DARWIN60_ENV) || defined(AFS_NBSD_ENV) pthread_sigmask (SIG_BLOCK, &ss, NULL); sigdelset (&os, SIGUSR1); -#else /* !defined(AFS_DARWIN60_ENV) */ +#else /* !defined(AFS_DARWIN60_ENV) && !defined(AFS_NBSD_ENV) */ for (i = 0; i < NSIG; i++) { if (!sigismember(&os, i) && i != SIGSTOP && i != SIGKILL) { sigaddset(&ss, i); softsig_sigs[i].fatal = 1; } } -#endif /* defined(AFS_DARWIN60_ENV) */ +#endif /* defined(AFS_DARWIN60_ENV) || defined(AFS_NBSD_ENV) */ while (1) { void (*h) (int); @@ -74,10 +74,10 @@ softsig_thread(void *arg) for (i = 0; i < NSIG; i++) { if (softsig_sigs[i].handler && !softsig_sigs[i].inited) { sigaddset(&ss, i); -#if defined(AFS_DARWIN60_ENV) +#if defined(AFS_DARWIN60_ENV) || defined(AFS_NBSD_ENV) pthread_sigmask (SIG_BLOCK, &ss, NULL); sigdelset (&os, i); -#endif /* defined(AFS_DARWIN60_ENV) */ +#endif /* defined(AFS_DARWIN60_ENV) || defined(AFS_NBSD_ENV) */ softsig_sigs[i].inited = 1; } if (softsig_sigs[i].pending) { @@ -87,16 +87,16 @@ softsig_thread(void *arg) } } if (i == NSIG) { -#if defined(AFS_DARWIN60_ENV) +#if defined(AFS_DARWIN60_ENV) || defined(AFS_NBSD_ENV) sigsuspend (&os); -#else /* !defined(AFS_DARWIN60_ENV) */ +#else /* !defined(AFS_DARWIN60_ENV) && !defined(AFS_NBSD_ENV) */ sigwait(&ss, &sigw); if (sigw != SIGUSR1) { if (softsig_sigs[sigw].fatal) exit(0); softsig_sigs[sigw].pending = 1; } -#endif /* defined(AFS_DARWIN60_ENV) */ +#endif /* defined(AFS_DARWIN60_ENV) || defined(AFS_NBSD_ENV) */ } else if (h) h(i); } -- 2.39.5