![]() |
Storage Engine API
|
There is one of those entries per each request for a lock. More...
#include <lock_manager_defs.h>
There is one of those entries per each request for a lock.
They hang on a linked list off the LockHead or off a PartitionedLockHead and also are in a map for each Locker. This structure is not thread-safe.
LockRequest are owned by the Locker class and it controls their lifetime. They should not be deleted while on the LockManager though (see the contract for the lock/unlock methods).
Public Types | |
enum | Status { STATUS_NEW, STATUS_GRANTED, STATUS_WAITING, STATUS_CONVERTING, StatusCount } |
Public Member Functions | |
void | initNew (Locker *locker, LockGrantNotification *notify) |
Used for initialization of a LockRequest, which might have been retrieved from cache. More... | |
Public Attributes | |
Locker * | locker |
LockGrantNotification * | notify |
bool | enqueueAtFront |
bool | compatibleFirst |
bool | partitioned |
unsigned | recursiveCount |
LockHead * | lock |
PartitionedLockHead * | partitionedLock |
LockRequest * | prev |
LockRequest * | next |
Status | status |
LockMode | mode |
LockMode | convertMode |
unsigned | unlockPending = 0 |
void mongo::LockRequest::initNew | ( | Locker * | locker, |
LockGrantNotification * | notify | ||
) |
Used for initialization of a LockRequest, which might have been retrieved from cache.
bool mongo::LockRequest::compatibleFirst |
LockMode mongo::LockRequest::convertMode |
bool mongo::LockRequest::enqueueAtFront |
LockHead* mongo::LockRequest::lock |
Locker* mongo::LockRequest::locker |
LockMode mongo::LockRequest::mode |
LockRequest* mongo::LockRequest::next |
LockGrantNotification* mongo::LockRequest::notify |
bool mongo::LockRequest::partitioned |
PartitionedLockHead* mongo::LockRequest::partitionedLock |
LockRequest* mongo::LockRequest::prev |
unsigned mongo::LockRequest::recursiveCount |
Status mongo::LockRequest::status |
unsigned mongo::LockRequest::unlockPending = 0 |