mirror of
https://github.com/postgres/postgres.git
synced 2025-07-15 19:21:59 +03:00
Documentation improvement and minor code cleanups for the latch facility.
Improve the documentation around weak-memory-ordering risks, and do a pass of general editorialization on the comments in the latch code. Make the Windows latch code more like the Unix latch code where feasible; in particular provide the same Assert checks in both implementations. Fix poorly-placed WaitLatch call in syncrep.c. This patch resolves, for the moment, concerns around weak-memory-ordering bugs in latch-related code: we have documented the restrictions and checked that existing calls meet them. In 9.2 I hope that we will install suitable memory barrier instructions in SetLatch/ResetLatch, so that their callers don't need to be quite so careful.
This commit is contained in:
@ -332,7 +332,7 @@ InitProcess(void)
|
||||
MyProc->waitLSN.xrecoff = 0;
|
||||
MyProc->syncRepState = SYNC_REP_NOT_WAITING;
|
||||
SHMQueueElemInit(&(MyProc->syncRepLinks));
|
||||
OwnLatch((Latch *) &MyProc->waitLatch);
|
||||
OwnLatch(&MyProc->waitLatch);
|
||||
|
||||
/*
|
||||
* We might be reusing a semaphore that belonged to a failed process. So
|
||||
|
Reference in New Issue
Block a user