masar...@aero.polimi.it writes: > I'm inclined towards defining a private function, with an interface > analogous to that of the tread-safe function, and use it all times, > re-entrant as appropriate. If the re-entrant function is available, a > #define could be used instead. Otherwise, the wrapper would take care of > the rest. This would solve the issue once for all, and clean up quite a > bit the code, as any mutex would no longer need to be exposed.
That would mean moving lutil_gettime() (and its caller lutil_csnstr()?) to libldap, so libldap_r can use the mutex. But not exposing gmtime_mutex would break third-partly modules that use gmtime()/localtime() correctly, which means protecting them with gmtime_mutex. We could however register gmtime_mutex in libldap, similar to registering which memory functions to use. -- Hallvard