]> git.tue.mpg.de Git - paraslash.git/commitdiff
daemon: Add documentation of daemon_set_hooks().
authorAndre Noll <maan@tuebingen.mpg.de>
Wed, 26 Sep 2018 22:46:08 +0000 (00:46 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Tue, 25 Dec 2018 18:30:50 +0000 (19:30 +0100)
The function was introduced already one year ago in commit ced0c17d1a3e
(daemon: Introduce log mutex), but no documentation was provided
back then.

daemon.c

index bfa81487430f62dc7417db6ba6e0c6d53c008051..a4e2f3193730d456ce9908eb55888cdb759154e0 100644 (file)
--- 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;