simon-svn: putty: simon
tartarus-commits at lists.tartarus.org
tartarus-commits at lists.tartarus.org
Mon Jan 8 19:38:39 GMT 2007
SVN root: svn://ixion.tartarus.org/main
Changes by: simon
Revision: 7077
Date: 2007-01-08 19:38:39 +0000 (Mon, 08 Jan 2007)
Log message (16 lines):
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.)
Modified files:
U putty/windows/windlg.c
U putty/windows/winnet.c
U putty/windows/winstuff.h
Links:
http://www.tartarus.org/~simon-anonsvn/viewcvs.cgi?rev=7077&view=rev
http://www.tartarus.org/~simon-anonsvn/viewcvs.cgi/putty/windows/windlg.c?rev=7077&r1=7076&r2=7077
http://www.tartarus.org/~simon-anonsvn/viewcvs.cgi/putty/windows/winnet.c?rev=7077&r1=7076&r2=7077
http://www.tartarus.org/~simon-anonsvn/viewcvs.cgi/putty/windows/winstuff.h?rev=7077&r1=7076&r2=7077
More information about the tartarus-commits
mailing list