Re: src/backend/storage/lmgr/lock.c ----> LockAcquire() - Mailing list pgsql-hackers

From Tom Lane
Subject Re: src/backend/storage/lmgr/lock.c ----> LockAcquire()
Date
Msg-id 12931.1051189797@sss.pgh.pa.us
Whole thread Raw
In response to src/backend/storage/lmgr/lock.c ----> LockAcquire()  ("S -" <nat_lazy@hotmail.com>)
List pgsql-hackers
"S -" <nat_lazy@hotmail.com> writes:
> -- Within a SINGLE call of LockAcquire, is it possible for GrantLock() to be 
> called multiple times?

Hmm.  In the normal course of events, a LockAcquire would only try to
grant the target lock to itself; it couldn't grant anything to anyone
else as a byproduct.  But I think there might be corner cases involving
deadlock detection.  Once a deadlock is detected, the resulting
transaction abort leads to lock releases which lead to lock grants
occurring --- so how narrowly are you defining "a single call of
LockAcquire"?

In any case a single call of LockRelease can certainly result in
multiple GrantLocks, so I'm not sure what sort of optimization you might
have in mind that would be feasible.
        regards, tom lane



pgsql-hackers by date:

Previous
From: Rod Taylor
Date:
Subject: Re: Are we losing momentum?
Next
From: Robert Treat
Date:
Subject: putting new pdf docs on ftp site