That's actually what I'm working on right now. I'm creating an open source c++ library that will process timezones and provide functionality. From: bent@latency.net [mailto:bent@latency.net] On Behalf Of Bennett Todd Sent: Wednesday, November 02, 2011 12:02 PM To: Thom Hehl Cc: tz@iana.org Subject: Thread-safe localtime(3) (was Re: [tz] Reading binary files) Am I missing a fundamental, or would it be reasonable to not necessarily expose the data structure for the parsed conversion data, but instead offer explicit parse routine (returning an opaque blob) and convert routine that takes such a blob as a parameter? Then it should be easy to make tzset(3) utterly trivial -- call the zoninfo parser on getenv(TZ) with locking, and localtime(3) likewise trivial, call the real convert routine with the datastructure cached by the latest tzset.