Fix lack of cleanup.{c,h}
[onak.git] / cleanup.h
diff --git a/cleanup.h b/cleanup.h
new file mode 100644 (file)
index 0000000..c5361c9
--- /dev/null
+++ b/cleanup.h
@@ -0,0 +1,39 @@
+/*
+ * cleanup.h - Cleanup and shutdown framework.
+ *
+ * Jonathan McDowell <noodles@earth.li>
+ *
+ * Copyright 2004 Project Purple
+ */
+
+#ifndef __CLEANUP_H__
+#define __CLEANUP_H__
+
+#include <stdbool.h>
+
+/*
+ *     trytocleanup - say we should try to cleanup.
+ *
+ *      This function sets the cleanup flag indicating we want to try and
+ *      cleanup ASAP.
+ */
+void trytocleanup(void);
+
+/*
+ *     cleanup - indicate if we should try to cleanup.
+ *
+ *     This function returns a bool which indicates if we want to cleanup and
+ *     exit ASAP.
+ */
+bool cleanup(void);
+
+/*
+ *     catchsignals - Register signal handlers for various signals.
+ *
+ *     This function registers a signal handler for various signals (PIPE,
+ *     ALRM, INT, TERM, HUP) that sets the cleanup flag so we try to exit
+ *     ASAP, but cleanly.
+ */
+void catchsignals(void);
+
+#endif /* __CLEANUP_H__ */