[phobos] phobos commit, revision 2107
Steve Schveighoffer
schveiguy at yahoo.com
Tue Oct 19 11:45:17 PDT 2010
----- Original Message ----
> From: Brad Roberts <braddr at puremagic.com>
>
> On 10/19/2010 6:15 AM, dsource.org wrote:
> > phobos commit, revision 2107
> >
> >
> > user: schveiguy
> >
> > msg: Fixed static destructor so sockets aren't closed on every thread exit
>in
> > windows. (see bug 4344 and 4951)
> >
> > Fixed unlisted bug, there could be a race condition on linux with
> > gethostbyname and gethostbyaddr, now synchronizing entire processing of
> > hostent struct.
> >
> > http://www.dsource.org/projects/phobos/changeset/2107
>
> There's a thread-safe version of gethostbyname, gethostbyname_r, that you
>could
> use to avoid having to syncronize those blocks. Or even better, migrate to
> getnameinfo on both linux and windows to move to the modern implementation.
getnameinfo looks like the right path. I just did what I did because it was
braindead simple and I didn't have to expend a lot of effort on it :) It's just
something I noticed when trying to figure out why multithreaded gethostbyname
calls were breaking on Windows.
Anyone with MacOSX confirm that getaddrinfo and getnameinfo exist on that OS?
> Your change is an improvement from unsafe use of a non-threadsafe api, but..
*shrug* it's better than what was there. It needs more attention, but I'm not
sure if std.socket is going to be replaced or not.
This also doesn't protect against someone calling gethostbyname directly.
-Steve
More information about the phobos
mailing list