The information in this article applies to:
SYMPTOMSAn application that uses the WinSock 1.1 call WSACancelAsyncRequest occasionally throws memory exceptions or causes erratic behavior. CAUSEWSACancelAsyncRequest has unavoidable timing conflicts that make canceling calls in progress impossible. WSACancelAsyncRequest is only successful at stopping calls queued for processing that have not yet started. RESOLUTIONDon't use WSACancelAsyncRequest to cancel calls that may be in progress. Specifically, don't try to cancel asynchronous selects. Allow them to complete, and ignore the results if necessary. STATUSThis behavior is by design. MORE INFORMATION
When an asynchronous WinSock call is in progress, it is hard to stop. For
example, an outstanding WSAAsyncSelect call may be in the process of
writing to a buffer your application supplied. The sockets DLL has no way
of terminating a memory copy because of the timing windows generated by
multiple threads. One thread may be in the middle of copying while another
does the cancel.
Keywords : kbnetwork kbtshoot kbAPI kbNTOS351 kbSDKPlatform kbWinOS95 kbGrpNet |
Last Reviewed: March 6, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |