diff options
-rw-r--r-- | misc/syslog.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/misc/syslog.c b/misc/syslog.c index 5b3bca2679..c7d92974e9 100644 --- a/misc/syslog.c +++ b/misc/syslog.c @@ -329,14 +329,19 @@ openlog_internal(const char *ident, int logstat, int logfac) } } + +static void +log_cleanup (void *arg) +{ + __libc_lock_unlock (*(__libc_lock_t *) arg); +} + void openlog (const char *ident, int logstat, int logfac) { #ifdef _LIBC_REENTRANT /* Protect against multiple users. */ - __libc_cleanup_region_start (1, - (void (*) __P ((void *))) __libc_mutex_unlock, - &syslog_lock); + __libc_cleanup_region_start (1, log_cleanup, &syslog_lock); __libc_lock_lock (syslog_lock); #endif @@ -370,9 +375,7 @@ closelog () { #ifdef _LIBC_REENTRANT /* Protect against multiple users. */ - __libc_cleanup_region_start (1, - (void (*) __P ((void *))) __libc_mutex_unlock, - &syslog_lock); + __libc_cleanup_region_start (1, log_cleanup, &syslog_lock); __libc_lock_lock (syslog_lock); #endif |