diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index aa6b2e455..3e8218771 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,6 +1,12 @@ 2005-03-02 Christopher Faylor * cygtls.cc (_cygtls::init_thread): Move exitsock setting later. It + +2005-03-02 Christopher Faylor + + * cygtls.cc (_cygtls::remove): Don't attempt any removal activities if + exitsock is zero. + should always be set. (_cygtls::remove): Detect zero exitsock. Not quite sure why this is needed. diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc index cb5379526..29047dff5 100644 --- a/winsup/cygwin/cygtls.cc +++ b/winsup/cygwin/cygtls.cc @@ -152,9 +152,11 @@ void _cygtls::remove (DWORD wait) { debug_printf ("wait %p\n", wait); + if (!locals.exitsock) + return; // FIXME: Need some sort of atthreadexit function to allow things like // select to control this themselves - if (locals.exitsock && locals.exitsock != INVALID_SOCKET) + if (locals.exitsock != INVALID_SOCKET) closesocket (locals.exitsock); do {