[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