Lift limitation that PGPROC->links must be the first field

Since commit 5764f611e1, we've been using the ilist.h functions for
handling the linked list. There's no need for 'links' to be the first
element of the struct anymore, except for one call in InitProcess
where we used a straight cast from the 'dlist_node *' to PGPROC *,
without the dlist_container() macro. That was just an oversight in
commit 5764f611e1, fix it.

There no imminent need to move 'links' from being the first field, but
let's be tidy.

Reviewed-by: Aleksander Alekseev, Andres Freund
Discussion: https://www.postgresql.org/message-id/22aa749e-cc1a-424a-b455-21325473a794@iki.fi
This commit is contained in:
Heikki Linnakangas 2024-07-05 11:21:46 +03:00
parent 590b045c37
commit 98347b5a3a
2 changed files with 1 additions and 2 deletions

View File

@ -330,7 +330,7 @@ InitProcess(void)
if (!dlist_is_empty(procgloballist)) if (!dlist_is_empty(procgloballist))
{ {
MyProc = (PGPROC *) dlist_pop_head_node(procgloballist); MyProc = dlist_container(PGPROC, links, dlist_pop_head_node(procgloballist));
SpinLockRelease(ProcStructLock); SpinLockRelease(ProcStructLock);
} }
else else

View File

@ -161,7 +161,6 @@ typedef enum
*/ */
struct PGPROC struct PGPROC
{ {
/* proc->links MUST BE FIRST IN STRUCT (see ProcSleep,ProcWakeup,etc) */
dlist_node links; /* list link if process is in a list */ dlist_node links; /* list link if process is in a list */
dlist_head *procgloballist; /* procglobal list that owns this PGPROC */ dlist_head *procgloballist; /* procglobal list that owns this PGPROC */