diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2005-11-04 18:35:51 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2005-11-04 18:35:51 +0000 |
commit | 6d8476ab3b367e42fa2e6ea809aa27fa265ad9db (patch) | |
tree | d3503f35744d80b608a33e9c3a505fabac585938 /src | |
parent | 0c1a3f94c63abb48656129e31826c1c287c17307 (diff) | |
download | postgresql-6d8476ab3b367e42fa2e6ea809aa27fa265ad9db.tar.gz postgresql-6d8476ab3b367e42fa2e6ea809aa27fa265ad9db.zip |
Ensure that we only create one ConsoleCtrlHandler per psql process,
so as to avoid performance issues and possible ultimate crash on long
psql scripts. Per Merlin Moncure.
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/psql/common.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/bin/psql/common.c b/src/bin/psql/common.c index 1c26eb6b84e..c98322ca4c0 100644 --- a/src/bin/psql/common.c +++ b/src/bin/psql/common.c @@ -3,7 +3,7 @@ * * Copyright (c) 2000-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.95 2005/01/01 05:43:08 momjian Exp $ + * $PostgreSQL: pgsql/src/bin/psql/common.c,v 1.95.4.1 2005/11/04 18:35:51 tgl Exp $ */ #include "postgres_fe.h" #include "common.h" @@ -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 */ |