Re: pgsql: Use latch instead of select() in walreceiver

Поиск
Список
Период
Сортировка
От Michael Paquier
Тема Re: pgsql: Use latch instead of select() in walreceiver
Дата
Msg-id CAB7nPqRA_cO_r_PLmRvFUtpvrTUeeBooXst1+oDecTPmTckp5A@mail.gmail.com
обсуждение исходный текст
Ответ на pgsql: Use latch instead of select() in walreceiver  (Peter Eisentraut <peter_e@gmx.net>)
Список 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 по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: pgsql: Use latch instead of select() in walreceiver
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Refactor libpqwalreceiver