Re: [PATCH] Allow breaking out of hung connection attempts
От | Ryan Kelly |
---|---|
Тема | Re: [PATCH] Allow breaking out of hung connection attempts |
Дата | |
Msg-id | 20120109134925.GA32189@llserver.lakeliving.com обсуждение исходный текст |
Ответ на | Re: [PATCH] Allow breaking out of hung connection attempts (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>) |
Ответы |
Re: [PATCH] Allow breaking out of hung connection attempts
|
Список | pgsql-hackers |
On Mon, Jan 09, 2012 at 10:35:50AM +0200, Heikki Linnakangas wrote: > 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'm guessing because it could result in a resource leak? > I think you'd need to use the asynchronous connection functions > PQconnectStartParams() and PQconnectPoll(), and select(). New patch attached. > > -- > Heikki Linnakangas > EnterpriseDB http://www.enterprisedb.com -Ryan Kelly
Вложения
В списке pgsql-hackers по дате отправления: