From 8668de6fb9739871d10de0f8b6a0ec678e0d7e2e Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Thu, 27 Sep 2018 00:46:08 +0200 Subject: [PATCH 1/1] daemon: Add documentation of daemon_set_hooks(). The function was introduced already one year ago in commit ced0c17d1a3e (daemon: Introduce log mutex), but no documentation was provided back then. --- daemon.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/daemon.c b/daemon.c index bfa81487..a4e2f319 100644 --- a/daemon.c +++ b/daemon.c @@ -146,6 +146,22 @@ void daemon_set_loglevel(const char *loglevel) me->loglevel = ret; } +/** + * Register functions to be called before and after a message is logged. + * + * \param pre_log_hook Called before the message is logged. + * \param post_log_hook Called after the message is logged. + * + * The purpose of this function is to provide a primitive for multi-threaded + * applications to serialize the access to the log facility, preventing + * interleaving log messages. This can be achieved by having the pre-log hook + * acquire a lock which blocks the other threads on the attempt to log a + * message at the same time. The post-log hook is responsible for releasing + * the lock. + * + * If these hooks are unnecessary, for example because the application is + * single-threaded, this function does not need to be called. + */ void daemon_set_hooks(void (*pre_log_hook)(void), void (*post_log_hook)(void)) { me->pre_log_hook = pre_log_hook; -- 2.39.2