From: Nick Mathewson Date: Tue, 23 Nov 2010 17:26:34 +0000 (-0500) Subject: Note that reentrant calls to libevent from logging cbs may fail badly X-Git-Tag: release-2.0.9-rc~25 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e431bcd6861fd75051ea6dca8af8db966eb7f636;p=libevent Note that reentrant calls to libevent from logging cbs may fail badly --- diff --git a/include/event2/event.h b/include/event2/event.h index 5be11688..f2ee18d1 100644 --- a/include/event2/event.h +++ b/include/event2/event.h @@ -280,6 +280,10 @@ void event_base_free(struct event_base *); #define _EVENT_LOG_MSG 1 #define _EVENT_LOG_WARN 2 #define _EVENT_LOG_ERR 3 + +/* + A callback function used to intercept Libevent's log messages. + */ typedef void (*event_log_cb)(int severity, const char *msg); /** Redirect Libevent's log messages. @@ -287,6 +291,9 @@ typedef void (*event_log_cb)(int severity, const char *msg); @param cb a function taking two arguments: an integer severity between _EVENT_LOG_DEBUG and _EVENT_LOG_ERR, and a string. If cb is NULL, then the default log is used. + + NOTE: The function you provide *must not* call any other libevent + functionality. Doing so can produce undefined behavior. */ void event_set_log_callback(event_log_cb cb);