Re: Latch implementation that wakes on postmaster death on both win32 and Unix

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: Latch implementation that wakes on postmaster death on both win32 and Unix
Дата
Msg-id BANLkTimi_CgmEV-XQviTAtPb=v16=XkGAQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Latch implementation that wakes on postmaster death on both win32 and Unix  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Ответы Re: Latch implementation that wakes on postmaster death on both win32 and Unix  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Re: Latch implementation that wakes on postmaster death on both win32 and Unix  (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>)
Список pgsql-hackers
I had another quick look-over this patch, and realised that I made a
minor mistake:

+void
+ReleasePostmasterDeathWatchHandle(void)
+{
+    /* MyProcPid won't have been set yet */
+    Assert(PostmasterPid != getpid());
+    /* Please don't ask twice */
+    Assert(postmaster_alive_fds[POSTMASTER_FD_OWN] != -1);
+    /* Release parent's ownership fd - only postmaster should hold it */
+    if (close(postmaster_alive_fds[ POSTMASTER_FD_OWN]))
+    {
+        ereport(FATAL,
+            (errcode_for_socket_access(),
+             errmsg("Failed to close file descriptor associated with
Postmaster death in child process %d", MyProcPid)));
+    }
+    postmaster_alive_fds[POSTMASTER_FD_OWN] = -1;
+}
+

MyProcPid is used in this errmsg, and as noted in the first comment,
it isn't expected to be initialised when
ReleasePostmasterDeathWatchHandle() is called. Therefore, MyProcPid
should be replaced with a call to getpid(), just as it is for
Assert(PostmasterPid != getpid()).

I suppose that you could take the view that MyProcPid ought to be
initialised before the function is called, but I thought this was the
least worst way. Better to do it this way than to touch all the
different ways in which MyProcPid might be initialised, I suspect.

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Florian Pflug
Дата:
Сообщение: Re: proposal: a validator for configuration files
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Latch implementation that wakes on postmaster death on both win32 and Unix