diff options
Diffstat (limited to 'src/backend/port/unix_latch.c')
-rw-r--r-- | src/backend/port/unix_latch.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/backend/port/unix_latch.c b/src/backend/port/unix_latch.c index 2ad609c436e..9f8b8d54f07 100644 --- a/src/backend/port/unix_latch.c +++ b/src/backend/port/unix_latch.c @@ -226,12 +226,13 @@ WaitLatchOrSocket(volatile Latch *latch, int wakeEvents, pgsocket sock, int hifd; #endif - /* Ignore WL_SOCKET_* events if no valid socket is given */ - if (sock == PGINVALID_SOCKET) - wakeEvents &= ~(WL_SOCKET_READABLE | WL_SOCKET_WRITEABLE); - Assert(wakeEvents != 0); /* must have at least one wake event */ + /* waiting for socket readiness without a socket indicates a bug */ + if (sock == PGINVALID_SOCKET && + (wakeEvents & (WL_SOCKET_READABLE | WL_SOCKET_WRITEABLE)) != 0) + elog(ERROR, "cannot wait on socket event without a socket"); + if ((wakeEvents & WL_LATCH_SET) && latch->owner_pid != MyProcPid) elog(ERROR, "cannot wait on a latch owned by another process"); |