Date: Mon, 9 Aug 1999 17:53:48 -0700 (PDT) From: Joe Groff <ognir@humboldt1.com> To: louie@TransSys.COM Cc: steve_tarkalson@hotmail.com, bmcgover@cisco.com, dan@trinsec.com, hackers@FreeBSD.ORG Subject: Re: gethostbyaddr() and threads. Message-ID: <199908100053.RAA28787@home.humboldt1.com> In-Reply-To: <199908092322.TAA68246@whizzo.transsys.com>
next in thread | previous in thread | raw e-mail | index | archive | help
---Louis A. Mamakos said: >> ---Steve Tarkalson said: >> > this is solved by one of two methods: >> > 1-) require the caller of gethostbyaddr() to supply a pointer to >> > a hostent struct which will be filled. >> > or 2-) the library uses thread specific storage which is re-used in >> > each call. >> > >> You could malloc() a struct hostent for each call to >> gethostby*(), each time registering the hostent in some list along with the >> thread's PID. If the same thread calls gethostby*, use the same buffer, or >> allocate a new one if another thread calls it. Have a static function be > called >> atexit to free all the mallocs. > > Yuk! > > If you're writing a multithreaded program, a slightly different API for > gethostbyname() is likely to be the least of your worries. > Well, I guess we might as well change the API, since everyone else does. Unless someone comes up with a bettter idea, of course :) -Joe To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199908100053.RAA28787>