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 :).
*
*/
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