http://bugs.winehq.org/show_bug.cgi?id=58526
--- Comment #17 from ethan li hahamotor@126.com ---
No, I was right to be baffled. I can't find if we tested it before, but terminating asyncs with success is the right thing to do.
There is actually a RST coming over the pipe here.
It turns out that native will trigger RST under certain conditions that we don't, including:
- WSACleanup()
- orderly process termination without closing the socket
- TerminateProcess()
but not:
- closesocket()
- CloseHandle()
That's kind of baffling, because I have no idea how the NT driver is supposed to be able to tell. It's not really a problem for us, we can communicate through side channels, but it's weird.
It may involve sokcet implementation or network driver issues at different operating system levels, which is a tricky problem and may be difficult to achieve 100% compatibility.