Hi.

I am very close to finishing an IOCP Winsock program. However, there is one major bug that I have not been able to debug and determine a working solution. One reason is the fact that I do not know what causes this bug. Note that this now the only bug or at least the only one that Visual C++ Debugger finds.

Here is the message from the debugger.

Code:
HEAP[Program.exe]: HEAP: Free Heap block 36a9c8 modified at 36a9f4 after it was freed
Unhandled exception at 0x77f7f570 in Program.exe: User breakpoint.
I notice that the program crashes and Visual C++ Debugger outputs this message only when the IOCP handles multiple sockets. I do not have an accurate count, but I believe ten or more sockets will cause the program to crash. To my understand, IOCP can handle thousands of sockets. In fact, a working WSAAsyncSelect I/O model of this same program works great under hundreds of sockets at any given time.

In terms of IOCP, what could be some causes of this heap problem?

Thanks,
Kuphryn