On Wed, 5 May 2004, Christopher Faylor wrote: > On Wed, May 05, 2004 at 05:38:35AM -0700, Brian Dessent wrote: > >Jacek Trzmiel wrote: > > > >> void test() > >> { > >> /* go find out about the desired host machine */ > >> struct hostent *he = gethostbyname(HOST); > >> if (he == 0) { > >> perror("gethostbyname"); > >> exit(1); > >> } > > > >Just a wild guess, but gethostbyname() is probably not reentrant and > >can't be called from threads like that. > > Unless HOST is a numeric IP address, gethostbyname should be properly > reentrant. The only time gethostbyname is not thread safe is when it is > resolving a numeric IP.
I believe that gethostbyname(), since it is returning a pointer to a statically allocated structure, cannot be thread safe under any circumstances. I always wrap it with a mutex until I'm done with the hostent structure. Steve -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/