![]() |
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 |