about summary refs log tree commit diff
path: root/third_party/git/sigchain.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/sigchain.c')
-rw-r--r--third_party/git/sigchain.c61
1 files changed, 0 insertions, 61 deletions
diff --git a/third_party/git/sigchain.c b/third_party/git/sigchain.c
deleted file mode 100644
index 022677b6ab..0000000000
--- a/third_party/git/sigchain.c
+++ /dev/null
@@ -1,61 +0,0 @@
-#include "cache.h"
-#include "sigchain.h"
-
-#define SIGCHAIN_MAX_SIGNALS 32
-
-struct sigchain_signal {
-	sigchain_fun *old;
-	int n;
-	int alloc;
-};
-static struct sigchain_signal signals[SIGCHAIN_MAX_SIGNALS];
-
-static void check_signum(int sig)
-{
-	if (sig < 1 || sig >= SIGCHAIN_MAX_SIGNALS)
-		BUG("signal out of range: %d", sig);
-}
-
-int sigchain_push(int sig, sigchain_fun f)
-{
-	struct sigchain_signal *s = signals + sig;
-	check_signum(sig);
-
-	ALLOC_GROW(s->old, s->n + 1, s->alloc);
-	s->old[s->n] = signal(sig, f);
-	if (s->old[s->n] == SIG_ERR)
-		return -1;
-	s->n++;
-	return 0;
-}
-
-int sigchain_pop(int sig)
-{
-	struct sigchain_signal *s = signals + sig;
-	check_signum(sig);
-	if (s->n < 1)
-		return 0;
-
-	if (signal(sig, s->old[s->n - 1]) == SIG_ERR)
-		return -1;
-	s->n--;
-	return 0;
-}
-
-void sigchain_push_common(sigchain_fun f)
-{
-	sigchain_push(SIGINT, f);
-	sigchain_push(SIGHUP, f);
-	sigchain_push(SIGTERM, f);
-	sigchain_push(SIGQUIT, f);
-	sigchain_push(SIGPIPE, f);
-}
-
-void sigchain_pop_common(void)
-{
-	sigchain_pop(SIGPIPE);
-	sigchain_pop(SIGQUIT);
-	sigchain_pop(SIGTERM);
-	sigchain_pop(SIGHUP);
-	sigchain_pop(SIGINT);
-}