projects
/
mmh
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added docs/contrib/vpick.
[mmh]
/
test
/
fakepop.c
diff --git
a/test/fakepop.c
b/test/fakepop.c
index
7ff62a8
..
389588d
100644
(file)
--- a/
test/fakepop.c
+++ b/
test/fakepop.c
@@
-36,6
+36,8
@@
continue; \
}
continue; \
}
+static void killpidfile(void);
+static void handleterm(int);
static void putpop(int, char *);
static void putpopbulk(int, char *);
static int getpop(int, char *, ssize_t);
static void putpop(int, char *);
static void putpopbulk(int, char *);
static int getpop(int, char *, ssize_t);
@@
-183,6
+185,9
@@
main(int argc, char *argv[])
fprintf(pid, "%ld\n", (long) getpid());
fclose(pid);
fprintf(pid, "%ld\n", (long) getpid());
fclose(pid);
+ signal(SIGTERM, handleterm);
+ atexit(killpidfile);
+
FD_ZERO(&readfd);
FD_SET(l, &readfd);
FD_ZERO(&readfd);
FD_SET(l, &readfd);
@@
-412,3
+417,27
@@
readmessage(FILE *file)
return buffer;
}
return buffer;
}
+
+/*
+ * Handle a SIGTERM
+ */
+
+static void
+handleterm(int signal)
+{
+ (void) signal;
+
+ killpidfile();
+ fflush(NULL);
+ _exit(1);
+}
+
+/*
+ * Get rid of our pid file
+ */
+
+static void
+killpidfile(void)
+{
+ unlink(PIDFILE);
+}