Date: Thu, 7 Oct 2004 07:20:45 +0200 From: Marc Balmer <marc@msys.ch> To: Dan Nelson <dnelson@allantgroup.com> Cc: freebsd-hackers@freebsd.org Subject: Re: syslog() reentrant when compiling with -pthread? Message-ID: <A3E829CE-1820-11D9-AB94-003065F9345A@msys.ch> In-Reply-To: <20041006144800.GB87201@dan.emsphone.com> References: <FFEC3743-17A3-11D9-BB63-0003938168B2@msys.ch> <20041006144800.GB87201@dan.emsphone.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Am 06.10.2004 um 16:48 schrieb Dan Nelson: > The only unsafe part is openlog(), so set that up before you start any > threads and you'll be okay. Once the log fd is opened, the syslog() > call looks to be thread-safe. Everything in there is done with local > variables and atomic writes. At least on OpenBSD I can use "%m" in the syslog() format string. This results in a call to strerror(), which is not thread safe, AFAIK. This probably is true for FreeBSD as well, so we have the following three conditions for thread safe syslog(): 1) openlog() must be called before any threads that use syslog() are started. 2) The first argument to openlog() must not be NULL. 3) The "%m" Format String must not be used in syslog() calls. Any comments? - Marc
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A3E829CE-1820-11D9-AB94-003065F9345A>