On Thu, Apr 1, 2021 at 11:29 AM Thomas Munro <thomas.mu...@gmail.com> wrote: > > On Tue, Mar 30, 2021 at 10:00 AM Thomas Munro <thomas.mu...@gmail.com> wrote: > > If we want to ship this in v14 we have to make a decision ASAP: > > > > 1. Ship the POLLHUP patch (like v9) that only works reliably on > > Linux. Maybe disable the feature completely on other OSes? > > 2. Ship the patch that tries to read (like v7). It should work on > > all systems, but it can be fooled by pipelined commands (though it can > > detect a pipelined 'X'). > > > > Personally, I lean towards #2. > > I changed my mind. Let's commit the pleasingly simple Linux-only > feature for now, and extend to it to send some kind of no-op message > in a later release. So this is the version I'd like to go with. > Objections? > > I moved the GUC into tcop/postgres.c and tcop/tcopprot.h, because it > directly controls postgres.c's behaviour, not pqcomm.c's. The latter > only contains the code to perform the check.
Here's a minor comment: it would be good if we have an extra line after variable assignments, before and after function calls/if clauses, something like + pollfd.revents = 0; + + rc = poll(&pollfd, 1, 0); + + if (rc < 0) And also here } + + if (CheckClientConnectionPending) + { + CheckClientConnectionPending = false; And + } + } + if (ClientConnectionLost) And + 0, 0, INT_MAX, + check_client_connection_check_interval, NULL, NULL + }, + /* End-of-list marker */ With Regards, Bharath Rupireddy. EnterpriseDB: http://www.enterprisedb.com