Paul Eggert wrote: > > This patch provides a workaround, and thus removes the test-nstrftime-2.sh > > failure at test-nstrftime.h:421. > > I was thinking of something a bit more general: temporarily set the time > zone before calling the underlying strftime, and reset it afterwards. > This of course won't work in a multithreaded system ...
Yes, this is not MT-safe. For 20 years I've been training myself to avoid thinking in a non-MT-safe way, and apparently now in this case it worked :-) > time_rz.c already does this sort of thing, and I suppose it could export > its secrets to nstrftime.c. Ouch ouch. No, instead of making more code *not* MT-safe, we should make more code MT-safe! Indeed, time_rz.c with its setenv_TZ function is not MT-safe, and with it also the modules nstrftime c-nstrftime fprintftime parse-datetime !! This is a show-stopper, since we've been discussing nstrftime and c-nstrftime, as replacements to recommend to developers, for three days. And of course we cannot recommend functions that look MT-safe but are not. Bruno