Introduce symbolic names for FeBeWaitSet positions.
Previously we used 0 and 1 to refer to the socket and latch in far flung parts of the tree, without any explanation. Also use PGINVALID_SOCKET rather than -1 in a couple of places that didn't already do that. Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Discussion: https://postgr.es/m/CA%2BhUKGJAC4Oqao%3DqforhNey20J8CiG2R%3DoBPqvfR0vOJrFysGw%40mail.gmail.com
This commit is contained in:
parent
cf54e04b9e
commit
a042ba2ba7
@ -180,7 +180,7 @@ retry:
|
|||||||
|
|
||||||
Assert(waitfor);
|
Assert(waitfor);
|
||||||
|
|
||||||
ModifyWaitEvent(FeBeWaitSet, 0, waitfor, NULL);
|
ModifyWaitEvent(FeBeWaitSet, FeBeWaitSetSocketPos, waitfor, NULL);
|
||||||
|
|
||||||
WaitEventSetWait(FeBeWaitSet, -1 /* no timeout */ , &event, 1,
|
WaitEventSetWait(FeBeWaitSet, -1 /* no timeout */ , &event, 1,
|
||||||
WAIT_EVENT_CLIENT_READ);
|
WAIT_EVENT_CLIENT_READ);
|
||||||
@ -292,7 +292,7 @@ retry:
|
|||||||
|
|
||||||
Assert(waitfor);
|
Assert(waitfor);
|
||||||
|
|
||||||
ModifyWaitEvent(FeBeWaitSet, 0, waitfor, NULL);
|
ModifyWaitEvent(FeBeWaitSet, FeBeWaitSetSocketPos, waitfor, NULL);
|
||||||
|
|
||||||
WaitEventSetWait(FeBeWaitSet, -1 /* no timeout */ , &event, 1,
|
WaitEventSetWait(FeBeWaitSet, -1 /* no timeout */ , &event, 1,
|
||||||
WAIT_EVENT_CLIENT_WRITE);
|
WAIT_EVENT_CLIENT_WRITE);
|
||||||
|
@ -191,6 +191,9 @@ WaitEventSet *FeBeWaitSet;
|
|||||||
void
|
void
|
||||||
pq_init(void)
|
pq_init(void)
|
||||||
{
|
{
|
||||||
|
int socket_pos PG_USED_FOR_ASSERTS_ONLY;
|
||||||
|
int latch_pos PG_USED_FOR_ASSERTS_ONLY;
|
||||||
|
|
||||||
/* initialize state variables */
|
/* initialize state variables */
|
||||||
PqSendBufferSize = PQ_SEND_BUFFER_SIZE;
|
PqSendBufferSize = PQ_SEND_BUFFER_SIZE;
|
||||||
PqSendBuffer = MemoryContextAlloc(TopMemoryContext, PqSendBufferSize);
|
PqSendBuffer = MemoryContextAlloc(TopMemoryContext, PqSendBufferSize);
|
||||||
@ -219,10 +222,19 @@ pq_init(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
FeBeWaitSet = CreateWaitEventSet(TopMemoryContext, 3);
|
FeBeWaitSet = CreateWaitEventSet(TopMemoryContext, 3);
|
||||||
AddWaitEventToSet(FeBeWaitSet, WL_SOCKET_WRITEABLE, MyProcPort->sock,
|
socket_pos = AddWaitEventToSet(FeBeWaitSet, WL_SOCKET_WRITEABLE,
|
||||||
|
MyProcPort->sock, NULL, NULL);
|
||||||
|
latch_pos = AddWaitEventToSet(FeBeWaitSet, WL_LATCH_SET, PGINVALID_SOCKET,
|
||||||
|
MyLatch, NULL);
|
||||||
|
AddWaitEventToSet(FeBeWaitSet, WL_POSTMASTER_DEATH, PGINVALID_SOCKET,
|
||||||
NULL, NULL);
|
NULL, NULL);
|
||||||
AddWaitEventToSet(FeBeWaitSet, WL_LATCH_SET, -1, MyLatch, NULL);
|
|
||||||
AddWaitEventToSet(FeBeWaitSet, WL_POSTMASTER_DEATH, -1, NULL, NULL);
|
/*
|
||||||
|
* The event positions match the order we added them, but let's sanity
|
||||||
|
* check them to be sure.
|
||||||
|
*/
|
||||||
|
Assert(socket_pos == FeBeWaitSetSocketPos);
|
||||||
|
Assert(latch_pos == FeBeWaitSetLatchPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --------------------------------
|
/* --------------------------------
|
||||||
|
@ -202,7 +202,8 @@ SwitchToSharedLatch(void)
|
|||||||
MyLatch = &MyProc->procLatch;
|
MyLatch = &MyProc->procLatch;
|
||||||
|
|
||||||
if (FeBeWaitSet)
|
if (FeBeWaitSet)
|
||||||
ModifyWaitEvent(FeBeWaitSet, 1, WL_LATCH_SET, MyLatch);
|
ModifyWaitEvent(FeBeWaitSet, FeBeWaitSetLatchPos, WL_LATCH_SET,
|
||||||
|
MyLatch);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the shared latch as the local one might have been set. This
|
* Set the shared latch as the local one might have been set. This
|
||||||
@ -221,7 +222,8 @@ SwitchBackToLocalLatch(void)
|
|||||||
MyLatch = &LocalLatchData;
|
MyLatch = &LocalLatchData;
|
||||||
|
|
||||||
if (FeBeWaitSet)
|
if (FeBeWaitSet)
|
||||||
ModifyWaitEvent(FeBeWaitSet, 1, WL_LATCH_SET, MyLatch);
|
ModifyWaitEvent(FeBeWaitSet, FeBeWaitSetLatchPos, WL_LATCH_SET,
|
||||||
|
MyLatch);
|
||||||
|
|
||||||
SetLatch(MyLatch);
|
SetLatch(MyLatch);
|
||||||
}
|
}
|
||||||
|
@ -55,6 +55,9 @@ extern const PGDLLIMPORT PQcommMethods *PqCommMethods;
|
|||||||
*/
|
*/
|
||||||
extern WaitEventSet *FeBeWaitSet;
|
extern WaitEventSet *FeBeWaitSet;
|
||||||
|
|
||||||
|
#define FeBeWaitSetSocketPos 0
|
||||||
|
#define FeBeWaitSetLatchPos 1
|
||||||
|
|
||||||
extern int StreamServerPort(int family, const char *hostName,
|
extern int StreamServerPort(int family, const char *hostName,
|
||||||
unsigned short portNumber, const char *unixSocketDir,
|
unsigned short portNumber, const char *unixSocketDir,
|
||||||
pgsocket ListenSocket[], int MaxListen);
|
pgsocket ListenSocket[], int MaxListen);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user