Storage Engine API
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lock_manager_defs.h File Reference
#include <cstdint>
#include <limits>
#include <string>
#include "mongo/base/static_assert.h"
#include "mongo/base/string_data.h"
#include "mongo/config.h"
#include "mongo/platform/hash_namespace.h"

Go to the source code of this file.

Classes

class  mongo::ResourceId
 Uniquely identifies a lockable resource. More...
 
class  mongo::LockGrantNotification
 Interface on which granted lock requests will be notified. More...
 
struct  mongo::LockRequest
 There is one of those entries per each request for a lock. More...
 
struct  hash< mongo::ResourceId >
 

Namespaces

 mongo
 Copyright (C) 2014 MongoDB Inc.
 

Typedefs

typedef uint64_t mongo::LockerId
 

Enumerations

enum  mongo::LockMode {
  mongo::MODE_NONE = 0, mongo::MODE_IS = 1, mongo::MODE_IX = 2, mongo::MODE_S = 3,
  mongo::MODE_X = 4, mongo::LockModesCount
}
 Lock modes. More...
 
enum  mongo::LockResult {
  mongo::LOCK_OK, mongo::LOCK_WAITING, mongo::LOCK_TIMEOUT, mongo::LOCK_DEADLOCK,
  mongo::LOCK_INVALID
}
 Return values for the locking functions of the lock manager. More...
 
enum  mongo::ResourceType {
  mongo::RESOURCE_INVALID = 0, mongo::RESOURCE_GLOBAL, mongo::RESOURCE_MMAPV1_FLUSH, mongo::RESOURCE_DATABASE,
  mongo::RESOURCE_COLLECTION, mongo::RESOURCE_METADATA, mongo::RESOURCE_MUTEX, mongo::ResourceTypesCount
}
 Hierarchy of resource types. More...
 

Functions

const char * mongo::modeName (LockMode mode)
 Returns a human-readable name for the specified lock mode. More...
 
const char * mongo::legacyModeName (LockMode mode)
 Legacy lock mode names in parity for 2.6 reports. More...
 
bool mongo::isModeCovered (LockMode mode, LockMode coveringMode)
 Mode A is covered by mode B if the set of conflicts for mode A is a subset of the set of conflicts for mode B. More...
 
bool mongo::isSharedLockMode (LockMode mode)
 Returns whether the passed in mode is S or IS. More...
 
const char * mongo::resourceTypeName (ResourceType resourceType)
 Returns a human-readable name for the specified resource type. More...
 
 mongo::MONGO_STATIC_ASSERT (sizeof(ResourceId)==sizeof(uint64_t))
 
const char * mongo::lockRequestStatusName (LockRequest::Status status)
 Returns a human readable status name for the specified LockRequest status. More...
 

Variables

const ResourceId mongo::resourceIdLocalDB = ResourceId(RESOURCE_DATABASE, StringData("local"))
 
const ResourceId mongo::resourceIdOplog = ResourceId(RESOURCE_COLLECTION, StringData("local.oplog.rs"))
 
const ResourceId mongo::resourceIdAdminDB = ResourceId(RESOURCE_DATABASE, StringData("admin"))
 
const ResourceId mongo::resourceIdParallelBatchWriterMode