diff --git a/os/osinit.c b/os/osinit.c index 45ab5271b..2a946a456 100644 --- a/os/osinit.c +++ b/os/osinit.c @@ -102,6 +102,7 @@ OsRegisterSigWrapper(OsSigWrapperPtr newSigWrapper) * OsSigHandler -- * Catch unexpected signals and exit or continue cleanly. */ +#if !defined(WIN32) || defined(__CYGWIN__) static void #ifdef SA_SIGINFO OsSigHandler(int signo, siginfo_t * sip, void *unused) @@ -146,6 +147,7 @@ OsSigHandler(int signo) FatalError("Caught signal %d (%s). Server aborting\n", signo, strsignal(signo)); } +#endif /* !WIN32 || __CYGWIN__ */ void OsInit(void) @@ -155,6 +157,7 @@ OsInit(void) char fname[PATH_MAX]; if (!been_here) { +#if !defined(WIN32) || defined(__CYGWIN__) struct sigaction act, oact; int i; @@ -181,6 +184,8 @@ OsInit(void) siglist[i], strerror(errno)); } } +#endif /* !WIN32 || __CYGWIN__ */ + #ifdef HAVE_BACKTRACE /* * initialize the backtracer, since the ctor calls dlopen(), which diff --git a/os/utils.c b/os/utils.c index 3c520add5..58df70902 100644 --- a/os/utils.c +++ b/os/utils.c @@ -212,6 +212,9 @@ sig_atomic_t inSignalContext = FALSE; OsSigHandlerPtr OsSignal(int sig, OsSigHandlerPtr handler) { +#if defined(WIN32) && !defined(__CYGWIN__) + return signal(sig, handler); +#else struct sigaction act, oact; sigemptyset(&act.sa_mask); @@ -222,6 +225,7 @@ OsSignal(int sig, OsSigHandlerPtr handler) if (sigaction(sig, &act, &oact)) perror("sigaction"); return oact.sa_handler; +#endif } /*