Set the 'must_close_session' flag at the end of close_session(), so
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 2 Mar 2011 18:52:03 +0000 (18:52 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Wed, 2 Mar 2011 18:52:03 +0000 (18:52 +0000)
that we won't keep calling close_session() again the next time we go
round the message loop. Should fix unclean-close-hang. Thanks to Simon
Coleman for debugging.

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

windows/window.c

index f721ed9..c8c2b56 100644 (file)
@@ -311,6 +311,15 @@ static void close_session(void)
        InsertMenu(popup_menus[i].menu, IDM_DUPSESS, MF_BYCOMMAND | MF_ENABLED,
                   IDM_RESTART, "&Restart Session");
     }
+
+    /*
+     * Unset the 'must_close_session' flag, or else we'll come
+     * straight back here the next time we go round the main message
+     * loop - which, worse still, will be immediately (without
+     * blocking) because we've just triggered a WM_SETTEXT by the
+     * window title change above.
+     */
+    must_close_session = FALSE;
 }
 
 int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)