Ensure that we only create one ConsoleCtrlHandler per psql process,
authorTom Lane <[email protected]>
Fri, 4 Nov 2005 18:35:51 +0000 (18:35 +0000)
committerTom Lane <[email protected]>
Fri, 4 Nov 2005 18:35:51 +0000 (18:35 +0000)
so as to avoid performance issues and possible ultimate crash on long
psql scripts.  Per Merlin Moncure.

src/bin/psql/common.c

index 937fede33eb2a7826e2666ef5c524f7a580dc4b1..b416d48379ec534cf17d98fffaac7d63e860e36f 100644 (file)
@@ -315,7 +315,14 @@ setup_win32_locks(void)
 void
 setup_cancel_handler(void)
 {
-       SetConsoleCtrlHandler(consoleHandler, TRUE);
+       static bool done = false;
+
+       /* only need one handler per process */
+       if (!done)
+       {
+               SetConsoleCtrlHandler(consoleHandler, TRUE);
+               done = true;
+       }
 }
 
 #endif /* WIN32 */