Tom Lane writes:> Greg Stark <gsstark@mit.edu> writes:> > On the other hand, things like, getpwnam, strtok, etc have
non-thread-safe>> APIs. They can never be made thread-safe. The *_r versions of these functions> > are standardized and
required.If they don't exist then the platform simply> > does not support threads.> > This statement is simply false.
Aplatform can build thread-safe> versions of those "unsafe" APIs if it makes the return values point> to thread-local
storage. Some BSDs do it that way. Accordingly, any> simplistic "we must have _r to be thread-safe" approach is>
incorrect.
No, it's not. Using the _r functions on such systems is BETTER because
the API is clean and the function can be implmented in a reentrant and
thread-safe fashion wuithout the need for thread local storage or
mutex locking.
L.