mirror of
https://github.com/postgres/postgres.git
synced 2025-12-21 05:21:08 +03:00
Clean up lockmanager data structures some more, in preparation for planned
rewrite of deadlock checking. Lock holder objects are now reachable from the associated LOCK as well as from the owning PROC. This makes it practical to find all the processes holding a lock, as well as all those waiting on the lock. Also, clean up some of the grottier aspects of the SHMQueue API, and cause the waitProcs list to be stored in the intuitive direction instead of the nonintuitive one. (Bet you didn't know that the code followed the 'prev' link to get to the next waiting process, instead of the 'next' link. It doesn't do that anymore.)
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: shmem.h,v 1.24 2000/11/28 23:27:57 tgl Exp $
|
||||
* $Id: shmem.h,v 1.25 2001/01/22 22:30:06 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -100,9 +100,9 @@ typedef struct
|
||||
extern void SHMQueueInit(SHM_QUEUE *queue);
|
||||
extern void SHMQueueElemInit(SHM_QUEUE *queue);
|
||||
extern void SHMQueueDelete(SHM_QUEUE *queue);
|
||||
extern void SHMQueueInsertTL(SHM_QUEUE *queue, SHM_QUEUE *elem);
|
||||
extern void SHMQueueFirst(SHM_QUEUE *queue, Pointer *nextPtrPtr,
|
||||
SHM_QUEUE *nextQueue);
|
||||
extern void SHMQueueInsertBefore(SHM_QUEUE *queue, SHM_QUEUE *elem);
|
||||
extern Pointer SHMQueueNext(SHM_QUEUE *queue, SHM_QUEUE *curElem,
|
||||
Size linkOffset);
|
||||
extern bool SHMQueueEmpty(SHM_QUEUE *queue);
|
||||
|
||||
#endif /* SHMEM_H */
|
||||
|
||||
Reference in New Issue
Block a user