提交 f1e57a4e 编写于 作者: S Simon Riggs

Cleanup VirtualXact at end of Hot Standby.

上级 7a2fe9bd
......@@ -105,6 +105,9 @@ ShutdownRecoveryTransactionEnvironment(void)
/* Release all locks the tracked transactions were holding */
StandbyReleaseAllLocks();
/* Cleanup our VirtualTransaction */
VirtualXactLockTableCleanup();
}
......
......@@ -210,7 +210,6 @@ static bool FastPathUnGrantRelationLock(Oid relid, LOCKMODE lockmode);
static bool FastPathTransferRelationLocks(LockMethod lockMethodTable,
const LOCKTAG *locktag, uint32 hashcode);
static PROCLOCK *FastPathGetRelationLockEntry(LOCALLOCK *locallock);
static void VirtualXactLockTableCleanup(void);
/*
* To make the fast-path lock mechanism work, we must have some way of
......@@ -3791,7 +3790,7 @@ VirtualXactLockTableInsert(VirtualTransactionId vxid)
* Check whether a VXID lock has been materialized; if so, release it,
* unblocking waiters.
*/
static void
void
VirtualXactLockTableCleanup()
{
bool fastpath;
......
......@@ -544,6 +544,7 @@ extern void DumpAllLocks(void);
/* Lock a VXID (used to wait for a transaction to finish) */
extern void VirtualXactLockTableInsert(VirtualTransactionId vxid);
extern void VirtualXactLockTableCleanup(void);
extern bool VirtualXactLock(VirtualTransactionId vxid, bool wait);
#endif /* LOCK_H */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册