mirror of
https://github.com/git/git.git
synced 2026-01-14 21:01:11 +00:00
msvc: do not pretend to support all signals
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 <jeffhost@microsoft.com>
This commit is contained in:
committed by
Johannes Schindelin
parent
85c9c759ec
commit
6894e73bb7
@@ -2138,8 +2138,34 @@ int mingw_raise(int sig)
|
||||
sigint_fn(SIGINT);
|
||||
return 0;
|
||||
|
||||
#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:
|
||||
case SIGFPE:
|
||||
case SIGSEGV:
|
||||
case SIGTERM:
|
||||
case SIGBREAK:
|
||||
case SIGABRT:
|
||||
case SIGABRT_COMPAT:
|
||||
return raise(sig);
|
||||
default:
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
|
||||
#else
|
||||
|
||||
default:
|
||||
return raise(sig);
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user