[talk] Is getaddrinfo thread-safe on OS X?
Steve
steve.b at osfda.org
Mon Jan 4 09:00:56 EST 2016
Sometimes they do things like that for backlevel compatibility; so
single threaded apps that rely on that global don't immediately break.
The question is: does ds_getaddrinfo _rely_ on that variable?
I doubt it; but it's _possible_ you found an oversight!
On 1/3/2016 10:57 AM, A. Jesse Jiryu Davis wrote:
> Thanks for the pointers, with your help I'm making progress. I think I
> found the source for Apple's getaddrinfo.
>
> In Apple's Libinfo version 222.4.12, the man page says getaddrinfo
> isn't thread-safe:
>
> http://www.opensource.apple.com/source/Libinfo/Libinfo-222.4.12/lookup.subproj/getaddrinfo.3
>
> And here's its source:
>
> http://www.opensource.apple.com/source/Libinfo/Libinfo-222.4.12/lookup.subproj/getaddrinfo.c
>
> Glancing at the source naïvely, I might see the data race: getaddrinfo
> calls gai_lookupd, which reads and writes the global static variable
> "gai_proc". I can't see what will go wrong as a result of the race,
> but it sure LOOKS bad. =)
>
> In the next release, version 278, the thread-safety warning is gone
> from the man page:
>
> http://www.opensource.apple.com/source/Libinfo/Libinfo-278/lookup.subproj/getaddrinfo.3
>
> And getaddrinfo is largely rewritten:
>
> http://www.opensource.apple.com/source/Libinfo/Libinfo-278/lookup.subproj/getaddrinfo.c
>
> It calls a new function, "ds_getaddrinfo". But ds_getaddrinfo still
> accesses the global static variable "gai_proc"; I wonder why this is
> considered thread-safe now?
>
> On Sun, Jan 3, 2016 at 12:14 AM, Siobhan Lynch <slynch2112 at me.com
> <mailto:slynch2112 at me.com>> wrote:
>
> OK… try and look at the revision histories of these three files:
>
> *#include* *<sys/types.h>*
> *#include* *<sys/socket.h>*
> *#include* *<netdb.h>*
>
>
> *-Trish*
>
>
>
>
>
> _______________________________________________
> talk mailing list
> talk at lists.nycbug.org
> http://lists.nycbug.org/mailman/listinfo/talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nycbug.org/pipermail/talk/attachments/20160104/6ecaa644/attachment.html>
More information about the talk
mailing list