@ -1318,6 +1318,7 @@ LWLockAcquire(LWLock *lock, LWLockMode mode)
# endif
# endif
LWLockReportWaitStart ( lock ) ;
LWLockReportWaitStart ( lock ) ;
if ( TRACE_POSTGRESQL_LWLOCK_WAIT_START_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_WAIT_START ( T_NAME ( lock ) , mode ) ;
TRACE_POSTGRESQL_LWLOCK_WAIT_START ( T_NAME ( lock ) , mode ) ;
for ( ; ; )
for ( ; ; )
@ -1340,6 +1341,7 @@ LWLockAcquire(LWLock *lock, LWLockMode mode)
}
}
# endif
# endif
if ( TRACE_POSTGRESQL_LWLOCK_WAIT_DONE_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_WAIT_DONE ( T_NAME ( lock ) , mode ) ;
TRACE_POSTGRESQL_LWLOCK_WAIT_DONE ( T_NAME ( lock ) , mode ) ;
LWLockReportWaitEnd ( ) ;
LWLockReportWaitEnd ( ) ;
@ -1349,6 +1351,7 @@ LWLockAcquire(LWLock *lock, LWLockMode mode)
result = false ;
result = false ;
}
}
if ( TRACE_POSTGRESQL_LWLOCK_ACQUIRE_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_ACQUIRE ( T_NAME ( lock ) , mode ) ;
TRACE_POSTGRESQL_LWLOCK_ACQUIRE ( T_NAME ( lock ) , mode ) ;
/* Add lock to list of locks held by this backend */
/* Add lock to list of locks held by this backend */
@ -1400,6 +1403,7 @@ LWLockConditionalAcquire(LWLock *lock, LWLockMode mode)
RESUME_INTERRUPTS ( ) ;
RESUME_INTERRUPTS ( ) ;
LOG_LWDEBUG ( " LWLockConditionalAcquire " , lock , " failed " ) ;
LOG_LWDEBUG ( " LWLockConditionalAcquire " , lock , " failed " ) ;
if ( TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL ( T_NAME ( lock ) , mode ) ;
TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_FAIL ( T_NAME ( lock ) , mode ) ;
}
}
else
else
@ -1407,6 +1411,7 @@ LWLockConditionalAcquire(LWLock *lock, LWLockMode mode)
/* Add lock to list of locks held by this backend */
/* Add lock to list of locks held by this backend */
held_lwlocks [ num_held_lwlocks ] . lock = lock ;
held_lwlocks [ num_held_lwlocks ] . lock = lock ;
held_lwlocks [ num_held_lwlocks + + ] . mode = mode ;
held_lwlocks [ num_held_lwlocks + + ] . mode = mode ;
if ( TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE ( T_NAME ( lock ) , mode ) ;
TRACE_POSTGRESQL_LWLOCK_CONDACQUIRE ( T_NAME ( lock ) , mode ) ;
}
}
return ! mustwait ;
return ! mustwait ;
@ -1479,6 +1484,7 @@ LWLockAcquireOrWait(LWLock *lock, LWLockMode mode)
# endif
# endif
LWLockReportWaitStart ( lock ) ;
LWLockReportWaitStart ( lock ) ;
if ( TRACE_POSTGRESQL_LWLOCK_WAIT_START_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_WAIT_START ( T_NAME ( lock ) , mode ) ;
TRACE_POSTGRESQL_LWLOCK_WAIT_START ( T_NAME ( lock ) , mode ) ;
for ( ; ; )
for ( ; ; )
@ -1497,6 +1503,7 @@ LWLockAcquireOrWait(LWLock *lock, LWLockMode mode)
Assert ( nwaiters < MAX_BACKENDS ) ;
Assert ( nwaiters < MAX_BACKENDS ) ;
}
}
# endif
# endif
if ( TRACE_POSTGRESQL_LWLOCK_WAIT_DONE_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_WAIT_DONE ( T_NAME ( lock ) , mode ) ;
TRACE_POSTGRESQL_LWLOCK_WAIT_DONE ( T_NAME ( lock ) , mode ) ;
LWLockReportWaitEnd ( ) ;
LWLockReportWaitEnd ( ) ;
@ -1527,6 +1534,7 @@ LWLockAcquireOrWait(LWLock *lock, LWLockMode mode)
/* Failed to get lock, so release interrupt holdoff */
/* Failed to get lock, so release interrupt holdoff */
RESUME_INTERRUPTS ( ) ;
RESUME_INTERRUPTS ( ) ;
LOG_LWDEBUG ( " LWLockAcquireOrWait " , lock , " failed " ) ;
LOG_LWDEBUG ( " LWLockAcquireOrWait " , lock , " failed " ) ;
if ( TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_FAIL_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_FAIL ( T_NAME ( lock ) , mode ) ;
TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_FAIL ( T_NAME ( lock ) , mode ) ;
}
}
else
else
@ -1535,6 +1543,7 @@ LWLockAcquireOrWait(LWLock *lock, LWLockMode mode)
/* Add lock to list of locks held by this backend */
/* Add lock to list of locks held by this backend */
held_lwlocks [ num_held_lwlocks ] . lock = lock ;
held_lwlocks [ num_held_lwlocks ] . lock = lock ;
held_lwlocks [ num_held_lwlocks + + ] . mode = mode ;
held_lwlocks [ num_held_lwlocks + + ] . mode = mode ;
if ( TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT ( T_NAME ( lock ) , mode ) ;
TRACE_POSTGRESQL_LWLOCK_ACQUIRE_OR_WAIT ( T_NAME ( lock ) , mode ) ;
}
}
@ -1695,6 +1704,7 @@ LWLockWaitForVar(LWLock *lock, uint64 *valptr, uint64 oldval, uint64 *newval)
# endif
# endif
LWLockReportWaitStart ( lock ) ;
LWLockReportWaitStart ( lock ) ;
if ( TRACE_POSTGRESQL_LWLOCK_WAIT_START_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_WAIT_START ( T_NAME ( lock ) , LW_EXCLUSIVE ) ;
TRACE_POSTGRESQL_LWLOCK_WAIT_START ( T_NAME ( lock ) , LW_EXCLUSIVE ) ;
for ( ; ; )
for ( ; ; )
@ -1714,6 +1724,7 @@ LWLockWaitForVar(LWLock *lock, uint64 *valptr, uint64 oldval, uint64 *newval)
}
}
# endif
# endif
if ( TRACE_POSTGRESQL_LWLOCK_WAIT_DONE_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_WAIT_DONE ( T_NAME ( lock ) , LW_EXCLUSIVE ) ;
TRACE_POSTGRESQL_LWLOCK_WAIT_DONE ( T_NAME ( lock ) , LW_EXCLUSIVE ) ;
LWLockReportWaitEnd ( ) ;
LWLockReportWaitEnd ( ) ;
@ -1840,6 +1851,7 @@ LWLockRelease(LWLock *lock)
/* nobody else can have that kind of lock */
/* nobody else can have that kind of lock */
Assert ( ! ( oldstate & LW_VAL_EXCLUSIVE ) ) ;
Assert ( ! ( oldstate & LW_VAL_EXCLUSIVE ) ) ;
if ( TRACE_POSTGRESQL_LWLOCK_RELEASE_ENABLED ( ) )
TRACE_POSTGRESQL_LWLOCK_RELEASE ( T_NAME ( lock ) ) ;
TRACE_POSTGRESQL_LWLOCK_RELEASE ( T_NAME ( lock ) ) ;
/*
/*