Fixed an issue where a taking the GIL could change the value of GetLastError().  This caused socket unit tests to fail randomly.  For example, calling a socket function with a non-blocking socket usually returns fail and the WSAGetLastError()/GetLastError() would be WSAEWOULDBLOCK.  This is normal for a non-blocking socket and should be handled gracefully.  However, when we re-take the GIL after the socket function, the value of GetLastError() changes causing a (python) exception to be raised.
Fixed an issue where a taking the GIL could change the value of GetLastError().  This caused socket unit tests to fail randomly.  For example, calling a socket function with a non-blocking socket usually returns fail and the WSAGetLastError()/GetLastError() would be WSAEWOULDBLOCK.  This is normal for a non-blocking socket and should be handled gracefully.  However, when we re-take the GIL after the socket function, the value of GetLastError() changes causing a (python) exception to be raised.

the socket function, called without the GIL, would return fail,

ms-iot/python,ms-iot/python,ms-iot/python,ms-iot/python,ms-iot/python,ms-iot/python,ms-iot/python,ms-iot/python