@@ -314,18 +314,18 @@ A performs a store, A and B both acquire an LWLock in either order, and B
314
314
then performs a load on the same memory location, it is guaranteed to see
315
315
A's store. In this case, each backend's fast-path lock queue is protected
316
316
by an LWLock. A backend wishing to acquire a fast-path lock grabs this
317
- LWLock before examining FastPathStrongLocks to check for the presence of a
318
- conflicting strong lock. And the backend attempting to acquire a strong
317
+ LWLock before examining FastPathStrongRelationLocks to check for the presence of
318
+ a conflicting strong lock. And the backend attempting to acquire a strong
319
319
lock, because it must transfer any matching weak locks taken via the fast-path
320
320
mechanism to the shared lock table, will acquire every LWLock protecting
321
- a backend fast-path queue in turn. Thus , if we examine FastPathStrongLocks
321
+ a backend fast-path queue in turn. So , if we examine FastPathStrongRelationLocks
322
322
and see a zero, then either the value is truly zero, or if it is a stale value,
323
323
the strong locker has yet to acquire the per-backend LWLock we now hold (or,
324
324
indeed, even the first per-backend LWLock) and will notice any weak lock we
325
325
take when it does.
326
326
327
- Fast-path VXID locks do not use the FastPathStrongLocks table. The first
328
- lock taken on a VXID is always the ExclusiveLock taken by its owner. Any
327
+ Fast-path VXID locks do not use the FastPathStrongRelationLocks table. The
328
+ first lock taken on a VXID is always the ExclusiveLock taken by its owner. Any
329
329
subsequent lockers are share lockers waiting for the VXID to terminate.
330
330
Indeed, the only reason VXID locks use the lock manager at all (rather than
331
331
waiting for the VXID to terminate via some other method) is for deadlock
0 commit comments