diff --git a/src/backend/storage/ipc/latch.c b/src/backend/storage/ipc/latch.c index 24d44c982d..f876dc7d97 100644 --- a/src/backend/storage/ipc/latch.c +++ b/src/backend/storage/ipc/latch.c @@ -1835,15 +1835,18 @@ WaitEventSetWaitBlock(WaitEventSet *set, int cur_timeout, if (cur_event->events == WL_LATCH_SET) { - if (!ResetEvent(set->latch->event)) - elog(ERROR, "ResetEvent failed: error code %lu", GetLastError()); - - if (set->latch && set->latch->is_set) + if (set->latch) { - occurred_events->fd = PGINVALID_SOCKET; - occurred_events->events = WL_LATCH_SET; - occurred_events++; - returned_events++; + if (!ResetEvent(set->latch->event)) + elog(ERROR, "ResetEvent failed: error code %lu", GetLastError()); + + if (set->latch->is_set) + { + occurred_events->fd = PGINVALID_SOCKET; + occurred_events->events = WL_LATCH_SET; + occurred_events++; + returned_events++; + } } } else if (cur_event->events == WL_POSTMASTER_DEATH)