tevent: add tevent_set_abort_fn()
authorStefan Metzmacher <metze@samba.org>
Thu, 12 Mar 2009 08:22:41 +0000 (09:22 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 12 Mar 2009 11:04:33 +0000 (12:04 +0100)
metze

lib/tevent/tevent.c
lib/tevent/tevent.h

index fd273afb6632b0ffd82527be90ca0cc75134e943..943d4d6bc257fc276d7312f6096ed6f1941abf29 100644 (file)
@@ -313,6 +313,25 @@ bool tevent_signal_support(struct tevent_context *ev)
        return false;
 }
 
+static void (*tevent_abort_fn)(const char *reason);
+
+void tevent_set_abort_fn(void (*abort_fn)(const char *reason))
+{
+       tevent_abort_fn = abort_fn;
+}
+
+static void tevent_abort(struct tevent_context *ev, const char *reason)
+{
+       tevent_debug(ev, TEVENT_DEBUG_FATAL,
+                    "abort: %s\n", reason);
+
+       if (!tevent_abort_fn) {
+               abort();
+       }
+
+       tevent_abort_fn(reason);
+}
+
 /*
   add a timer event
   return NULL on failure
index 1f4cf2d3297218ffddc14e9c4902e3c545931a69..90d0767f87bcb1eabf967fd53cc4d8069a3b1836 100644 (file)
@@ -110,6 +110,8 @@ void tevent_fd_set_flags(struct tevent_fd *fde, uint16_t flags);
 
 bool tevent_signal_support(struct tevent_context *ev);
 
+void tevent_set_abort_fn(void (*abort_fn)(const char *reason));
+
 /* bits for file descriptor event flags */
 #define TEVENT_FD_READ 1
 #define TEVENT_FD_WRITE 2