From 20f23518868de1d778fa45cbe8e3f1f80d73c82d Mon Sep 17 00:00:00 2001 From: Jeremy Studer Date: Fri, 22 Jun 2018 11:45:22 -0400 Subject: [PATCH] win: Redefine NSIG to consider SIGWINCH Since SIGWINCH is being defined with a value above the existing NSIG, redefine NSIG on WIN32. PR-URL: https://github.com/libuv/libuv/pull/2032 Reviewed-By: Anna Henningsen Reviewed-By: Colin Ihrig Reviewed-By: Refael Ackermann Reviewed-By: Sakthipriyan Vairamani --- include/uv/win.h | 8 ++++++++ src/win/signal.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/uv/win.h b/include/uv/win.h index d6b8b3a7..bb9477c8 100644 --- a/include/uv/win.h +++ b/include/uv/win.h @@ -86,6 +86,14 @@ typedef struct pollfd { #define SIGKILL 9 #define SIGWINCH 28 +/* Redefine NSIG to take SIGWINCH into consideration */ +#if defined(NSIG) && NSIG <= SIGWINCH +# undef NSIG +#endif +#ifndef NSIG +# define NSIG SIGWINCH + 1 +#endif + /* The CRT defines SIGABRT_COMPAT as 6, which equals SIGABRT on many unix-like * platforms. However MinGW doesn't define it, so we do. */ #ifndef SIGABRT_COMPAT diff --git a/src/win/signal.c b/src/win/signal.c index 3d0b8a35..276dc609 100644 --- a/src/win/signal.c +++ b/src/win/signal.c @@ -190,7 +190,7 @@ int uv__signal_start(uv_signal_t* handle, int signum, int oneshot) { /* Test for invalid signal values. */ - if (signum != SIGWINCH && (signum <= 0 || signum >= NSIG)) + if (signum <= 0 || signum >= NSIG) return UV_EINVAL; /* Short circuit: if the signal watcher is already watching {signum} don't go