zonefile changes and long running processes.

Paul Eggert eggert@cs.ucla.edu
Wed May 14 05:06:00 GMT 2014


Ondřej Bílka wrote:
> On Tue, May 13, 2014 at 02:41:31PM -0700, Paul Eggert wrote:
>> does POSIX allow localtime_r to have
>> undefined behavior if some other thread is simultaneously invoking
>> tzset?
>
> yes, it would as is now.

If POSIX says that, then what does it mean for tzset and localtime_r to 
be thread-safe?  If localtime_r can crash the system whenever another 
thread is calling tzset, how can that be considered "thread-safe"?

> A simplest solution would be replace mutex there with rwlock so
> localtime do not block each other.
>
> A faster solution would be add counter for localtime_r, a tzset would
> free previous buffers when a counter is zero, otherwise it would just
> add a buffer to list of buffers that should be freed.

All of these slow down localtime_r, if only somewhat.  Can't localtime_r 
run full-speed, without worrying about getting a lock or adding to a 
counter or whatnot?  After all, localtime_r is not required to be 
atomic; it's required only to be thread-safe.



More information about the Libc-alpha mailing list