zonefile changes and long running processes.
Paul Eggert
eggert@cs.ucla.edu
Thu May 8 05:31:00 GMT 2014
Carlos O'Donell wrote:
> it stands to reason you get either
> the new locale or the old locale but don't know which.
It's good to know that glibc enforces this, but it's not clear that
POSIX requires it. As far as I can see, if one thread calls localtime_r
at the same time some other thread is calling tzset, the first thread
may get the old time zone, or the new one, or some indeterminate
"in-between" time zone; all that POSIX requires is that localtime_r not
crash.
Also, it seems pretty clear that glibc's enforcement of atomicity slows
down localtime_r: if two threads can't simultaneously run localtime_r,
one can easily construct scenarios where localtime_r is unnecessarily a
bottleneck. It's plausible that some users would prefer a faster,
non-bottleneck-prone localtime_r to an atomic localtime_r, if only
because they know their applications will never really need the atomicity.
P.S. Have you read the "You don't know jack" paper on shared variables?
Some pretty scary stuff there; after reading it I couldn't help having
some doubts about whether glibc correctly enforces localtime_r atomicity.
Boehm H-J, Adve SV. You don't know jack about shared variables or memory
models. ACM Queue 2011 Dec;9(12):40. doi:10.1145/2076796.2088916.
http://queue.acm.org/detail.cfm?id=2088916
More information about the Libc-alpha
mailing list