diff options
author | Martin Schwenke <martin@meltin.net> | 2012-06-05 16:00:07 +1000 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2012-06-08 19:00:05 +0200 |
commit | 796acbd9ffd20f13f320641b8a27f86624f3d701 (patch) | |
tree | 5185331f59a2197a68ada44ca27f8ab0435d2608 /lib/tevent/tevent_debug.c | |
parent | 653cb76edfc3e9c2c426a6f8ec6ecfb253bd54d9 (diff) | |
download | samba-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.c | 23 |
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); + } +} |