pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/net/openafs/patches Work around sigwait not getting si...
details: https://anonhg.NetBSD.org/pkgsrc/rev/4ce761e4074c
branches: trunk
changeset: 494679:4ce761e4074c
user: gendalia <gendalia%pkgsrc.org@localhost>
date: Fri May 27 15:51:35 2005 +0000
description:
Work around sigwait not getting signals from pthread_kill
diffstat:
net/openafs/patches/patch-ag | 72 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diffs (76 lines):
diff -r 2bfcdc70b478 -r 4ce761e4074c net/openafs/patches/patch-ag
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/net/openafs/patches/patch-ag Fri May 27 15:51:35 2005 +0000
@@ -0,0 +1,72 @@
+$NetBSD: patch-ag,v 1.1 2005/05/27 15:51:35 gendalia Exp $
+
+sigwait doesn't get signals from pthread_kill
+
+--- src/util/softsig.c.orig 2005-05-27 10:47:01.000000000 -0500
++++ 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);
+ }
Home |
Main Index |
Thread Index |
Old Index