Re: [HACKERS] Re: [ODBC] RE: Fix for ODBC close
От | Tom Lane |
---|---|
Тема | Re: [HACKERS] Re: [ODBC] RE: Fix for ODBC close |
Дата | |
Msg-id | 6348.981915557@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: [ODBC] RE: Fix for ODBC close (Bruce Momjian <pgman@candle.pha.pa.us>) |
Список | pgsql-patches |
+ SOCK_put_char(self, 'X'); + SOCK_flush_output(self); + if (!shutdown(self->socket, 2)) /* no sends or receives */ closesocket(self->socket); I think you should issue the close() whether the shutdown() succeeds or not. Otherwise you have a file descriptor leak. In fact, given that you're going to close the socket, the separate shutdown call is a complete waste of cycles. Take it out. > Hiroshi, should I be concerned that a send() that does not send the full > packet just returns an error and does not retry? Is libpq() so complex > because of async connections? Right, libpq only needs to loop because it runs the socket in nonblock mode. SOCK_flush_output looks OK to me. (SOCK_get_next_byte, on the other hand, goes wacko on error or close... probably should make it return a null character instead of random data.) regards, tom lane
В списке pgsql-patches по дате отправления: