Thread (80 messages) 80 messages, 5 authors, 2019-06-25

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;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help