]> asedeno.scripts.mit.edu Git - PuTTY.git/commit
The remaining issue in `win-askappend-multi' appears to have been
authorSimon Tatham <anakin@pobox.com>
Mon, 8 Jan 2007 19:38:39 +0000 (19:38 +0000)
committerSimon Tatham <anakin@pobox.com>
Mon, 8 Jan 2007 19:38:39 +0000 (19:38 +0000)
commit6c3f4b3baa3d795c615ad212d700ba213010211e
tree05caec1d1ab8a67b9d155ff8a84c43ac921b8eb5
parentbacbc03f9fd2f0e3f2facf6154fa9b66645a52e3
The remaining issue in `win-askappend-multi' appears to have been
caused by the MessageBox() internal message loop eating WinSock
FD_READ notifications, which then don't reappear afterwards because
you have to explicitly prod a socket in order to get a repeat
notification on it.

Hence, here's a piece of infrastructure which seems to sort it out:
a new winnet.c function called socket_reselect_all(), whose function
is to go through all currently active sockets and re-run
WSAAsyncSelect() on them, causing repeat notifications for anything
we might have missed. I call this after every call to MessageBox(),
and that seems to solve the problem.

(The problem was actually masked in very recent revisions, probably
by the reinstatement of pending_netevent in r7071. However, I don't
believe that was a complete fix. This should be.)

[originally from svn r7077]
[r7071 == 57a763b0ec55b84d6a515e6d860759898d648869]
windows/windlg.c
windows/winnet.c
windows/winstuff.h