Ensure backend netevent handlers are never reentered -
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 20 Sep 2000 11:40:23 +0000 (11:40 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 20 Sep 2000 11:40:23 +0000 (11:40 +0000)
fixes many strange problems with the ssh.c coroutines

git-svn-id: svn://svn.tartarus.org/sgt/putty@603 cda61777-01e9-0310-a592-d414129be87e

window.c

index 62b0b2a..4e70dfe 100644 (file)
--- a/window.c
+++ b/window.c
@@ -524,8 +524,16 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) {
  */
 static void enact_pending_netevent(void) {
     int i;
+    static int reentering = 0;
+
+    if (reentering)
+        return;                        /* don't unpend the pending */
+
     pending_netevent = FALSE;
+
+    reentering = 1;
     i = back->msg (pend_netevent_wParam, pend_netevent_lParam);
+    reentering = 0;
 
     if (i < 0) {
        char buf[1024];