On 08.01.2012 22:18, Ryan Kelly wrote:
@@ -1570,7 +1570,13 @@ do_connect(char *dbname, char *user, char *host, char *port) keywords[7] = NULL; values[7] = NULL;- n_conn = PQconnectdbParams(keywords, values, true); + if (sigsetjmp(sigint_interrupt_jmp, 1) != 0) { + /* got here with longjmp */ + } else { + sigint_interrupt_enabled = true; + n_conn = PQconnectdbParams(keywords, values, true); + sigint_interrupt_enabled = false; + } free(keywords); free(values);
That assumes that it's safe to longjmp out of PQconnectdbParams at any instant. It's not. I think you'd need to use the asynchronous connection functions PQconnectStartParams() and PQconnectPoll(), and select().
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
