mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Rename LWLockWaitUntilFree to LWLockAcquireOrWait.
LWLockAcquireOrWait makes it more clear that the lock is acquired if it's free.
This commit is contained in:
parent
af7dd696b0
commit
1a01560cbb
@ -2145,7 +2145,7 @@ XLogFlush(XLogRecPtr record)
|
|||||||
* helps to maintain a good rate of group committing when the system
|
* helps to maintain a good rate of group committing when the system
|
||||||
* is bottlenecked by the speed of fsyncing.
|
* is bottlenecked by the speed of fsyncing.
|
||||||
*/
|
*/
|
||||||
if (!LWLockWaitUntilFree(WALWriteLock, LW_EXCLUSIVE))
|
if (!LWLockAcquireOrWait(WALWriteLock, LW_EXCLUSIVE))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* The lock is now free, but we didn't acquire it yet. Before we
|
* The lock is now free, but we didn't acquire it yet. Before we
|
||||||
|
@ -572,7 +572,7 @@ LWLockConditionalAcquire(LWLockId lockid, LWLockMode mode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LWLockWaitUntilFree - Wait until a lock is free
|
* LWLockAcquireOrWait - Acquire lock, or wait until it's free
|
||||||
*
|
*
|
||||||
* The semantics of this function are a bit funky. If the lock is currently
|
* The semantics of this function are a bit funky. If the lock is currently
|
||||||
* free, it is acquired in the given mode, and the function returns true. If
|
* free, it is acquired in the given mode, and the function returns true. If
|
||||||
@ -586,14 +586,14 @@ LWLockConditionalAcquire(LWLockId lockid, LWLockMode mode)
|
|||||||
* wake up, observe that their records have already been flushed, and return.
|
* wake up, observe that their records have already been flushed, and return.
|
||||||
*/
|
*/
|
||||||
bool
|
bool
|
||||||
LWLockWaitUntilFree(LWLockId lockid, LWLockMode mode)
|
LWLockAcquireOrWait(LWLockId lockid, LWLockMode mode)
|
||||||
{
|
{
|
||||||
volatile LWLock *lock = &(LWLockArray[lockid].lock);
|
volatile LWLock *lock = &(LWLockArray[lockid].lock);
|
||||||
PGPROC *proc = MyProc;
|
PGPROC *proc = MyProc;
|
||||||
bool mustwait;
|
bool mustwait;
|
||||||
int extraWaits = 0;
|
int extraWaits = 0;
|
||||||
|
|
||||||
PRINT_LWDEBUG("LWLockWaitUntilFree", lockid, lock);
|
PRINT_LWDEBUG("LWLockAcquireOrWait", lockid, lock);
|
||||||
|
|
||||||
#ifdef LWLOCK_STATS
|
#ifdef LWLOCK_STATS
|
||||||
/* Set up local count state first time through in a given process */
|
/* Set up local count state first time through in a given process */
|
||||||
@ -665,7 +665,7 @@ LWLockWaitUntilFree(LWLockId lockid, LWLockMode mode)
|
|||||||
* Wait until awakened. Like in LWLockAcquire, be prepared for bogus
|
* Wait until awakened. Like in LWLockAcquire, be prepared for bogus
|
||||||
* wakups, because we share the semaphore with ProcWaitForSignal.
|
* wakups, because we share the semaphore with ProcWaitForSignal.
|
||||||
*/
|
*/
|
||||||
LOG_LWDEBUG("LWLockWaitUntilFree", lockid, "waiting");
|
LOG_LWDEBUG("LWLockAcquireOrWait", lockid, "waiting");
|
||||||
|
|
||||||
#ifdef LWLOCK_STATS
|
#ifdef LWLOCK_STATS
|
||||||
block_counts[lockid]++;
|
block_counts[lockid]++;
|
||||||
@ -684,7 +684,7 @@ LWLockWaitUntilFree(LWLockId lockid, LWLockMode mode)
|
|||||||
|
|
||||||
TRACE_POSTGRESQL_LWLOCK_WAIT_DONE(lockid, mode);
|
TRACE_POSTGRESQL_LWLOCK_WAIT_DONE(lockid, mode);
|
||||||
|
|
||||||
LOG_LWDEBUG("LWLockWaitUntilFree", lockid, "awakened");
|
LOG_LWDEBUG("LWLockAcquireOrWait", lockid, "awakened");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -702,7 +702,7 @@ LWLockWaitUntilFree(LWLockId lockid, LWLockMode mode)
|
|||||||
{
|
{
|
||||||
/* Failed to get lock, so release interrupt holdoff */
|
/* Failed to get lock, so release interrupt holdoff */
|
||||||
RESUME_INTERRUPTS();
|
RESUME_INTERRUPTS();
|
||||||
LOG_LWDEBUG("LWLockWaitUntilFree", lockid, "failed");
|
LOG_LWDEBUG("LWLockAcquireOrWait", lockid, "failed");
|
||||||
TRACE_POSTGRESQL_LWLOCK_WAIT_UNTIL_FREE_FAIL(lockid, mode);
|
TRACE_POSTGRESQL_LWLOCK_WAIT_UNTIL_FREE_FAIL(lockid, mode);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -108,7 +108,7 @@ extern bool Trace_lwlocks;
|
|||||||
extern LWLockId LWLockAssign(void);
|
extern LWLockId LWLockAssign(void);
|
||||||
extern void LWLockAcquire(LWLockId lockid, LWLockMode mode);
|
extern void LWLockAcquire(LWLockId lockid, LWLockMode mode);
|
||||||
extern bool LWLockConditionalAcquire(LWLockId lockid, LWLockMode mode);
|
extern bool LWLockConditionalAcquire(LWLockId lockid, LWLockMode mode);
|
||||||
extern bool LWLockWaitUntilFree(LWLockId lockid, LWLockMode mode);
|
extern bool LWLockAcquireOrWait(LWLockId lockid, LWLockMode mode);
|
||||||
extern void LWLockRelease(LWLockId lockid);
|
extern void LWLockRelease(LWLockId lockid);
|
||||||
extern void LWLockReleaseAll(void);
|
extern void LWLockReleaseAll(void);
|
||||||
extern bool LWLockHeldByMe(LWLockId lockid);
|
extern bool LWLockHeldByMe(LWLockId lockid);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user