Zero  0.1.0
Classes | Functions | Variables
lock_raw.h File Reference
#include <cstdint>
#include <ostream>
#include <pthread.h>
#include "AtomicCounter.hpp"
#include "w_defines.h"
#include "w_okvl.h"
#include "w_rc.h"
#include "w_gc_pool_forest.h"
#include "w_markable_pointer.h"
#include "lsn.h"

Go to the source code of this file.

Classes

struct  RawLock
 An RAW-style lock entry in the queue. More...
 
struct  RawLockQueue
 An RAW-style lock queue to hold granted and waiting lock requests (RawLock). More...
 
struct  RawLockQueue::Iterator
 Safely iterates through lock entires in this queue from the head. More...
 
struct  RawLockQueue::Compatibility
 
class  RawXctLockHashMap
 A hashmap for lock entries in transaction's private memory. More...
 
struct  RawXct
 A shadow transaction object for RAW-style lock manager. More...
 
class  RawLockBackgroundThread
 The background thread for pre-allocation and garbage collection of object pools used in RAW-style lock manager. More...
 

Functions

void atomic_synchronize ()
 Invokes "mfence", which is sfence + lfence. More...
 
void atomic_synchronize_if_mutex ()
 
std::ostream & operator<< (std::ostream &o, const RawLock &v)
 
std::ostream & operator<< (std::ostream &o, const RawLockQueue &v)
 
std::ostream & operator<< (std::ostream &o, const RawXct &v)
 

Variables

const MarkablePointer< RawLockNULL_RAW_LOCK
 
const int RAW_XCT_LOCK_HASHMAP_SIZE = 1023
 

Function Documentation

§ atomic_synchronize_if_mutex()

void atomic_synchronize_if_mutex ( )
inline

§ operator<<() [1/3]

std::ostream& operator<< ( std::ostream &  o,
const RawLock v 
)

§ operator<<() [2/3]

std::ostream& operator<< ( std::ostream &  o,
const RawLockQueue v 
)

§ operator<<() [3/3]

std::ostream& operator<< ( std::ostream &  o,
const RawXct v 
)

Variable Documentation

§ NULL_RAW_LOCK

const MarkablePointer<RawLock> NULL_RAW_LOCK

Const object representing NULL RawLock.