summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--acconfig.h6
-rw-r--r--threadproc/unix/signals.c7
2 files changed, 7 insertions, 6 deletions
diff --git a/acconfig.h b/acconfig.h
index 25d28f6c8..98e0154b3 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -53,4 +53,10 @@
#define BEOS_BONE 1
#endif
+#ifdef SIGWAIT_TAKES_ONE_ARG
+#define apr_sigwait(a,b) ((*(b)=sigwait((a)))<0?-1:0)
+#else
+#define apr_sigwait(a,b) sigwait((a),(b))
+#endif
+
#endif /* APR_PRIVATE_H */
diff --git a/threadproc/unix/signals.c b/threadproc/unix/signals.c
index a96fded38..a192ebeee 100644
--- a/threadproc/unix/signals.c
+++ b/threadproc/unix/signals.c
@@ -278,12 +278,7 @@ static void *signal_thread_func(void *signal_handler)
while (1) {
int signal_received;
-#ifdef SIGWAIT_TAKES_ONE_ARG
- signal_received = sigwait(&sig_mask);
- if (signal_received == -1)
-#else
- if (sigwait(&sig_mask, &signal_received) == -1)
-#endif
+ if (apr_sigwait(&sig_mask, &signal_received) != 0)
{
/* handle sigwait() error here */
}