[Spread-users] Monitor on Win32?

Tim Peters tim at zope.com
Tue Jan 8 15:41:09 EST 2002


[Mike Stagnaro mstagnaro at hotmail.com
 Wed, 12 Dec 2001 11:38:48 -0700]
> ...
> I'm running on Win2K, SP2 using Visual Studio 6, SP 5.
> ...
> Another side question....
> I don't see any calls to "WSACleanup()" in the source distribution.
> Does this lead to any strange behaviour on Win32 platforms, or does
> socket closure and/or process death do enough to release resources
> from Winsock (I usually call it to insure the ref counter stays
> consistent)?

More problematic is that there are no calls to closesocket() -- close()
doesn't work on sockets in Windows, so Spread never actually closes a socket
on Windows except via process death.  This can eventually cause "mysterious
problems" in both the daemon and client, as internal socket resources are
exhausted.

A one-second hack that rendered Spread rock-solid (even on Win98) for me was
adding

#define close closesocket

to arch.h under the ARCH_PC_WIN95 branch.

A subtler problem is that socket error info isn't communicated via errno
under Windows, and WSAGetLastError/GetLastError aren't called either.  But I
haven't seen any problems I could pin on that.






More information about the Spread-users mailing list