diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/storage/lock.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h index 4c49e3c6e69..4e7d0aeeccd 100644 --- a/src/include/storage/lock.h +++ b/src/include/storage/lock.h @@ -425,6 +425,7 @@ typedef struct LOCALLOCK int numLockOwners; /* # of relevant ResourceOwners */ int maxLockOwners; /* allocated size of array */ bool holdsStrongLockCount; /* bumped FastPathStrongRelationLocks */ + bool lockCleared; /* we read all sinval msgs for lock */ LOCALLOCKOWNER *lockOwners; /* dynamically resizable array */ } LOCALLOCK; @@ -459,7 +460,8 @@ typedef enum { LOCKACQUIRE_NOT_AVAIL, /* lock not available, and dontWait=true */ LOCKACQUIRE_OK, /* lock successfully acquired */ - LOCKACQUIRE_ALREADY_HELD /* incremented count for lock already held */ + LOCKACQUIRE_ALREADY_HELD, /* incremented count for lock already held */ + LOCKACQUIRE_ALREADY_CLEAR /* incremented count for lock already clear */ } LockAcquireResult; /* Deadlock states identified by DeadLockCheck() */ @@ -503,8 +505,10 @@ extern LockAcquireResult LockAcquireExtended(const LOCKTAG *locktag, LOCKMODE lockmode, bool sessionLock, bool dontWait, - bool report_memory_error); + bool reportMemoryError, + LOCALLOCK **locallockp); extern void AbortStrongLockAcquire(void); +extern void MarkLockClear(LOCALLOCK *locallock); extern bool LockRelease(const LOCKTAG *locktag, LOCKMODE lockmode, bool sessionLock); extern void LockReleaseAll(LOCKMETHODID lockmethodid, bool allLocks); |