aboutsummaryrefslogtreecommitdiff
path: root/compat
diff options
context:
space:
mode:
authorErik Faye-Lund <kusmabite@gmail.com>2012-12-04 09:10:37 +0100
committerJunio C Hamano <gitster@pobox.com>2012-12-04 08:00:29 -0800
commitf4f549892ac686a9adcf3cb72bee1a11c0566c88 (patch)
tree4eb85f5e0d5b040f5b8c23e2cea8c15cdb008fa7 /compat
parentf94c3251e1400c3cf349f7f84fea4db66b540113 (diff)
downloadgit-f4f549892ac686a9adcf3cb72bee1a11c0566c88.tar.gz
git-f4f549892ac686a9adcf3cb72bee1a11c0566c88.tar.xz
mingw: correct exit-code for SIGALRM's SIG_DFL
Make sure SIG_DFL for SIGALRM exits with 128 + SIGALRM so other processes can diagnose why it exits. While we're at it, make sure we only write to stderr if it's a terminal, and change the output to match that of Linux. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'compat')
-rw-r--r--compat/mingw.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/compat/mingw.c b/compat/mingw.c
index 4e6383898..8ae424564 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -1560,8 +1560,11 @@ static sig_handler_t timer_fn = SIG_DFL;
static unsigned __stdcall ticktack(void *dummy)
{
while (WaitForSingleObject(timer_event, timer_interval) == WAIT_TIMEOUT) {
- if (timer_fn == SIG_DFL)
- die("Alarm");
+ if (timer_fn == SIG_DFL) {
+ if (isatty(STDERR_FILENO))
+ fputs("Alarm clock\n", stderr);
+ exit(128 + SIGALRM);
+ }
if (timer_fn != SIG_IGN)
timer_fn(SIGALRM);
if (one_shot)