summaryrefslogtreecommitdiff
path: root/lib/tevent/tevent_debug.c
diff options
context:
space:
mode:
authorMartin Schwenke <martin@meltin.net>2012-06-05 16:00:07 +1000
committerStefan Metzmacher <metze@samba.org>2012-06-08 19:00:05 +0200
commit796acbd9ffd20f13f320641b8a27f86624f3d701 (patch)
tree5185331f59a2197a68ada44ca27f8ab0435d2608 /lib/tevent/tevent_debug.c
parent653cb76edfc3e9c2c426a6f8ec6ecfb253bd54d9 (diff)
downloadsamba-796acbd9ffd20f13f320641b8a27f86624f3d701.tar.gz
samba-796acbd9ffd20f13f320641b8a27f86624f3d701.tar.bz2
samba-796acbd9ffd20f13f320641b8a27f86624f3d701.zip
lib/tevent: Add trace point callback
Set/get a single callback function to be invoked at various trace points. Define "before wait" and "after wait" trace points - more trace points can be added later if required. CTDB wants this to log long waits and events. Pair-programmed-with: Amitay Isaacs <amitay@gmail.com> Signed-off-by: Martin Schwenke <martin@meltin.net> Signed-off-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'lib/tevent/tevent_debug.c')
-rw-r--r--lib/tevent/tevent_debug.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/tevent/tevent_debug.c b/lib/tevent/tevent_debug.c
index 3f4112831a..31da7b9683 100644
--- a/lib/tevent/tevent_debug.c
+++ b/lib/tevent/tevent_debug.c
@@ -94,3 +94,26 @@ void tevent_debug(struct tevent_context *ev, enum tevent_debug_level level,
va_end(ap);
}
+void tevent_set_trace_callback(struct tevent_context *ev,
+ tevent_trace_callback_t cb,
+ void *private_data)
+{
+ ev->tracing.callback = cb;
+ ev->tracing.private_data = private_data;
+}
+
+void tevent_get_trace_callback(struct tevent_context *ev,
+ tevent_trace_callback_t *cb,
+ void *private_data)
+{
+ *cb = ev->tracing.callback;
+ *(void**)private_data = ev->tracing.private_data;
+}
+
+void tevent_trace_point_callback(struct tevent_context *ev,
+ enum tevent_trace_point tp)
+{
+ if (ev->tracing.callback != NULL) {
+ ev->tracing.callback(tp, ev->tracing.private_data);
+ }
+}