En/na Luca Olivetti ha escrit:
El Thu, 06 Mar 2008 13:09:34 +0100
"Lukas Gebauer" <[EMAIL PROTECTED]> escribió:


It is IMHO bug in FPC, just because Synapse code working in Delphi/Kylix threads perfectly. It have a problem on FPC threads only, and as I see in this discussion, problem have other programs too, not just Synapse. And I am pretty sure, Synapse working fine with some older FPC versions.

And it also works fine with fpc under linux. That's why I wrote "fix"
in quotes, since I don't think that synapse is doing anything wrong.
Anyway, since I need/want to use synapse (actually I don't want to
write my own  ftp client, the one in synapse works just fine), while
the compiler gurus find the cause of the problem, I worked around it in
SockCheck by assigning a dummy code to FLastError if
synsock.WSAGetLastError returns 0.
I'm still worried of other side effects in windows TThread code.

Jonas Maebe found the cause of the bug: when you use threads under windows, there are calls to TlsGetValue (made in SysRelocateThreadVar) to keep track of exception frames, and TlsGetValue reset LastError to 0. If some windows developer is listening, please take a look at the patch I posted on the bug report:

http://bugs.freepascal.org/view.php?id=10205

Bye
--
Luca

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to