Bruce Momjian wrote: > Manfred Spraul wrote: > > Jeroen Ruigrok/asmodai wrote: > > > > >-On [20030908 23:52], Peter Eisentraut ([EMAIL PROTECTED]) wrote: > > > > > > > > >>Why would FreeBSD have a "library of thread-safe libc functions" (libc_r) > > >>if the functions weren't thread-safe? I think the test is faulty. > > >> > > >> > > A thread-safe library has a per-thread errno value (i.e. errno is a > > #define to a function call), thread-safe io buffers for stdio, etc. Some > > of these changes cause a noticable overhead, thus a seperate library for > > those users who want to avoid that overhead. > > > > Reentrancy is independant from _r: If you look at the prototype of > > gethostbyname(), it's just not possible to make that thread safe with > > reasonable effort - the C library would have to keep one buffer per > > thread around. > > See the top of src/port/thread.c --- that's exactly what is does (keep > one buffer per thread around). > > * Threading sometimes requires specially-named versions of functions > * that return data in static buffers, like strerror_r() instead of > * strerror(). Other operating systems use pthread_setspecific() > * and pthread_getspecific() internally to allow standard library > * functions to return static data to threaded applications.
And that's exactly what src/tools/test_thread_funcs.c tests for. -- Bruce Momjian | http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]