Perhaps I had a poorly written LSP installed on my NT 4.0 system I used
back in 2001, but I assure you it was a problem! The call to TlsGetValue
would reset the value retrieved from WSAGetLastError, and simply saving
and then setting the value of GetLastError would not suffice.
Also, while the WIN32/64 documentation seems to say WSAGetLastError is an
alias for GetLastError, the CE documentation does not.
In my own library I coded around the problem by saving and resetting the
value of WSAGetLastError while calling pthread_getspecific, so feel free
to remove it and hope nobody else sees the problem!
On Mon, October 19, 2009 8:09 am, Ramiro Polla wrote:
> A dependency to Winsock was introduced to pthreads-win32 in this commit:
> 2001-08-23 Phil Frisbie, Jr. <phil at hawksoft.com>
> * tsd.c (pthread_getspecific): Preserve the last
> winsock error [from WSAGetLastError()].
> There was an unanswered reply that questions whether this was really
> http://sourceware.org/ml/pthreads-win32/2001/msg00122.html >
> Does anyone have a reproducible testcase that triggers the error this
> commit was supposed to fix?
> I've tested on win98, xp and vista and I can't get GetTlsValue() to
> touch WSA errors. The source code in Wine also only uses
> SetLastError(), and not WSASetLastError().
> If I understood correctly, this should only be a problem if the user does:
> In the case where people check for errors right after calling a wsock
> function this shouldn't be a problem, right?
> Ramiro Polla