]> granicus.if.org Git - postgresql/commit
shm_mq: Fix failure to notice a dead counterparty when nowait is used.
authorRobert Haas <rhaas@postgresql.org>
Thu, 22 Oct 2015 20:33:30 +0000 (16:33 -0400)
committerRobert Haas <rhaas@postgresql.org>
Thu, 22 Oct 2015 20:33:30 +0000 (16:33 -0400)
commitb2ccb5f4e6c81305386edb34daf7d1d1e1ee112a
tree43612763bb5feffd13effc2336c8744403b7312e
parent31ba62ce32940146b6c818e9bf30b2555797c43d
shm_mq: Fix failure to notice a dead counterparty when nowait is used.

The shm_mq mechanism was intended to optionally notice when the process
on the other end of the queue fails to attach to the queue.  It does
this by allowing the user to pass a BackgroundWorkerHandle; if the
background worker in question is launched and dies without attaching
to the queue, then we know it never will.  This logic works OK in
blocking mode, but when called with nowait = true we fail to notice
that this has happened due to an asymmetry in the logic.  Repair.

Reported off-list by Rushabh Lathia.  Patch by me.
src/backend/storage/ipc/shm_mq.c