From bd307f4e23f985b55276724a00f88e07309e68be Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 29 Sep 2004 10:00:28 +0000 Subject: * time/tzfile.c (tzfile_mtime): New variable. (__tzfile_read): Reread the file if mtime is different. --- ChangeLog | 3 +++ time/tzfile.c | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 46dc4b994e..cf39515d6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-09-29 Jakub Jelinek + * time/tzfile.c (tzfile_mtime): New variable. + (__tzfile_read): Reread the file if mtime is different. + * sysdeps/i386/fpu/s_fdim.S (__fdim): Handle +inf/+inf. * sysdeps/i386/fpu/s_fdimf.S (__fdimf): Likewise. * sysdeps/i386/fpu/s_fdiml.S (__fdiml): Likewise. diff --git a/time/tzfile.c b/time/tzfile.c index 8c2756e7bb..48c1e4d790 100644 --- a/time/tzfile.c +++ b/time/tzfile.c @@ -32,6 +32,7 @@ int __use_tzfile; static dev_t tzfile_dev; static ino64_t tzfile_ino; +static time_t tzfile_mtime; struct ttinfo { @@ -161,7 +162,8 @@ __tzfile_read (const char *file, size_t extra, char **extrap) fclose (f); goto ret_free_transitions; } - if (was_using_tzfile && tzfile_ino == st.st_ino && tzfile_dev == st.st_dev) + if (was_using_tzfile && tzfile_ino == st.st_ino && tzfile_dev == st.st_dev + && tzfile_mtime == st.st_mtime) { /* It's the same file. No further work needed. */ fclose (f); @@ -172,9 +174,10 @@ __tzfile_read (const char *file, size_t extra, char **extrap) free ((void *) transitions); transitions = NULL; - /* Remember the inode and device number. */ + /* Remember the inode and device number and modification time. */ tzfile_dev = st.st_dev; tzfile_ino = st.st_ino; + tzfile_mtime = st.st_mtime; /* No threads reading this stream. */ __fsetlocking (f, FSETLOCKING_BYCALLER); -- cgit v1.2.3