]> git.sur5r.net Git - i3/i3/commitdiff
log: use localtime_r instead of localtime
authorMichael Stapelberg <michael@stapelberg.de>
Tue, 18 Oct 2011 17:32:47 +0000 (18:32 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 18 Oct 2011 17:32:47 +0000 (18:32 +0100)
localtime_r does not have the side-effect of behaving like it called tzset(),
in particular it will save one stat(/etc/localtime) syscall. This is not a big
deal, but it makes the strace output cleaner and thus more useful :).

src/log.c

index 5e1c35eb455c42d1ff8112c824c8bc3362066c70..c258b19ba38414a6b9b1717a5ae9be7bb05d0feb 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -87,12 +87,13 @@ void add_loglevel(const char *level) {
  *
  */
 void vlog(char *fmt, va_list args) {
-    char timebuf[64];
+    static char timebuf[64];
+    static struct tm result;
 
     /* Get current time */
     time_t t = time(NULL);
     /* Convert time to local time (determined by the locale) */
-    struct tm *tmp = localtime(&t);
+    struct tm *tmp = localtime_r(&t, &result);
     /* Generate time prefix */
     strftime(timebuf, sizeof(timebuf), "%x %X - ", tmp);
 #ifdef DEBUG_TIMING