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




Reply via email to