Re: pgsql: Use latch instead of select() in walreceiver - Mailing list pgsql-committers

From Michael Paquier
Subject Re: pgsql: Use latch instead of select() in walreceiver
Date
Msg-id CAB7nPqRA_cO_r_PLmRvFUtpvrTUeeBooXst1+oDecTPmTckp5A@mail.gmail.com
Whole thread Raw
In response to pgsql: Use latch instead of select() in walreceiver  (Peter Eisentraut <peter_e@gmx.net>)
List pgsql-committers
On Fri, Dec 2, 2016 at 10:29 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
> Use latch instead of select() in walreceiver
>
> Replace use of poll()/select() by WaitLatchOrSocket(), which is more
> portable and flexible.
>
> Also change walreceiver to use its procLatch instead of a custom latch.
>
> From: Petr Jelinek <petr@2ndquadrant.com>

+           ResetLatch(&MyProc->procLatch);
+           rc = WaitLatchOrSocket(&MyProc->procLatch,
+                                  WL_POSTMASTER_DEATH | WL_SOCKET_READABLE |
+                                  WL_LATCH_SET,
+                                  PQsocket(streamConn),
+                                  0,
+                                  WAIT_EVENT_LIBPQWALRECEIVER_READ);
+           if (rc & WL_POSTMASTER_DEATH)
+               exit(1);
Hmm. We have always been very careful about not leaving immediately
from libpqwalreceiver.c which is an independent shared library so as
the WAL receiver can take cleanup actions. See here for more details:
https://www.postgresql.org/message-id/CAEepm=0hg_FX7kdUhosTpJ_kPsUZw6k-7nuQNy-dGAOaetn_tA@mail.gmail.com
--
Michael


pgsql-committers by date:

Previous
From: Peter Eisentraut
Date:
Subject: pgsql: Use latch instead of select() in walreceiver
Next
From: Tom Lane
Date:
Subject: Re: pgsql: Refactor libpqwalreceiver