]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
[BZ #5186]
authorUlrich Drepper <drepper@redhat.com>
Wed, 17 Oct 2007 20:23:20 +0000 (20:23 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 17 Oct 2007 20:23:20 +0000 (20:23 +0000)
* time/tzset.c (__tz_convert): Don't force testing for a change of
TZ if not called from localtime.  But then also see whether the
file changed, in case __use_tzfile is set.

ChangeLog
time/tzset.c

index 9ae15180308edee0f9cd7571e4a948d4b700a414..f9a7564d13c8951745058d94c119f5dc62baad98 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2007-10-17  Ulrich Drepper  <drepper@redhat.com>
 
+       [BZ #5186]
+       * time/tzset.c (__tz_convert): Don't force testing for a change of
+       TZ if not called from localtime.  But then also see whether the
+       file changed, in case __use_tzfile is set.
+
        * sysdeps/unix/sysv/linux/i386/bits/fcntl.h: Define F_DUPFD_CLOEXEC.
        * sysdeps/unix/sysv/linux/ia64/bits/fcntl.h: Likewise.
        * sysdeps/unix/sysv/linux/powerpc/bits/fcntl.h: Likewise.
index 27efef0f7a2fc7ba420c77492f2b32033c4bec5b..0d5420218537bf84d66a435428ff44d7293b40bf 100644 (file)
@@ -401,7 +401,7 @@ tzset_internal (always, explicit)
   if (tz && *tz == ':')
     ++tz;
 
-  /* Check whether the value changes since the last run.  */
+  /* Check whether the value changed since the last run.  */
   if (old_tz != NULL && tz != NULL && strcmp (tz, old_tz) == 0)
     /* No change, simply return.  */
     return;
@@ -606,9 +606,8 @@ __tz_convert (const time_t *timer, int use_localtime, struct tm *tp)
 
   /* Update internal database according to current TZ setting.
      POSIX.1 8.3.7.2 says that localtime_r is not required to set tzname.
-     This is a good idea since this allows at least a bit more parallelism.
-     By analogy we apply the same rule to gmtime_r.  */
-  tzset_internal (tp == &_tmbuf, 0);
+     This is a good idea since this allows at least a bit more parallelism.  */
+  tzset_internal (tp == &_tmbuf && use_localtime, 1);
 
   if (__use_tzfile)
     __tzfile_compute (*timer, use_localtime, &leap_correction,