Re: [PATCH 15/17] msvc: do not pretend to support all signals
From: Johannes Schindelin <hidden>
Date: 2019-06-19 16:49:30
Hi Eric, On Wed, 19 Jun 2019, Eric Sunshine wrote:
On Tue, Jun 18, 2019 at 8:24 AM Jeff Hostetler via GitGitGadget [off-list ref] wrote:quoted
This special-cases various signals that are not supported on Windows, such as SIGPIPE. These cause the UCRT to throw asserts (at least in debug mode). Signed-off-by: Jeff Hostetler <redacted> Signed-off-by: Johannes Schindelin <redacted> ---diff --git a/compat/mingw.c b/compat/mingw.c@@ -2119,8 +2119,34 @@ int mingw_raise(int sig) +#if defined(_MSC_VER) + /* + * <signal.h> in the CRT defines 8 signals as being + * supported on the platform. Anything else causes + * an "Invalid signal or error" (which in DEBUG builds + * causes the Abort/Retry/Ignore dialog). We by-pass + * the CRT for things we already know will fail. + */ + /*case SIGINT:*/ + case SIGILL:Why is SIGINT commented out?
Whoops. The `case` before that already handles `SIGINT`, I think that's why... I removed it.
And, the comment block seems over-indented.
Not really, as the `case` statements are indented one level less than the code (including the comments). But I agree that it looks funny, and moved it within the `case` arm. Thanks! Dscho
quoted
+ case SIGFPE: + case SIGSEGV: + case SIGTERM: + case SIGBREAK: + case SIGABRT: + case SIGABRT_COMPAT: + return raise(sig); + default: + errno = EINVAL; + return -1;