31#define LatchWaitSetLatchPos 0
32#define LatchWaitSetPostmasterDeathPos 1
71 latch->event = CreateEvent(NULL, TRUE, FALSE, NULL);
72 if (latch->event == NULL)
73 elog(
ERROR,
"CreateEvent failed: error code %lu", GetLastError());
96 SECURITY_ATTRIBUTES
sa;
101 ZeroMemory(&
sa,
sizeof(
sa));
102 sa.nLength =
sizeof(
sa);
103 sa.bInheritHandle = TRUE;
105 latch->event = CreateEvent(&
sa, TRUE, FALSE, NULL);
106 if (latch->event == NULL)
107 elog(
ERROR,
"CreateEvent failed: error code %lu", GetLastError());
135 elog(
PANIC,
"latch already owned by PID %d", owner_pid);
197 wait_event_info) == 0)
222 long timeout,
uint32 wait_event_info)
354 handle = latch->event;
#define pg_memory_barrier()
#define PG_USED_FOR_ASSERTS_ONLY
Assert(PointerIsAligned(start, uint64))
void InitializeLatchWaitSet(void)
int WaitLatchOrSocket(Latch *latch, int wakeEvents, pgsocket sock, long timeout, uint32 wait_event_info)
#define LatchWaitSetLatchPos
void OwnLatch(Latch *latch)
void DisownLatch(Latch *latch)
void InitSharedLatch(Latch *latch)
static WaitEventSet * LatchWaitSet
void SetLatch(Latch *latch)
void InitLatch(Latch *latch)
#define LatchWaitSetPostmasterDeathPos
void ResetLatch(Latch *latch)
int WaitLatch(Latch *latch, int wakeEvents, long timeout, uint32 wait_event_info)
ResourceOwner CurrentResourceOwner
sig_atomic_t maybe_sleeping
void WakeupOtherProc(int pid)
void ModifyWaitEvent(WaitEventSet *set, int pos, uint32 events, Latch *latch)
int AddWaitEventToSet(WaitEventSet *set, uint32 events, pgsocket fd, Latch *latch, void *user_data)
int WaitEventSetWait(WaitEventSet *set, long timeout, WaitEvent *occurred_events, int nevents, uint32 wait_event_info)
void FreeWaitEventSet(WaitEventSet *set)
WaitEventSet * CreateWaitEventSet(ResourceOwner resowner, int nevents)
#define WL_EXIT_ON_PM_DEATH
#define WL_POSTMASTER_DEATH