libfoedus-core
FOEDUS Core Library
foedus::memory::PagePoolControlBlock Struct Reference

Shared data in PagePoolPimpl. More...

Detailed Description

Shared data in PagePoolPimpl.

Definition at line 40 of file page_pool_pimpl.hpp.

#include <page_pool_pimpl.hpp>

Collaboration diagram for foedus::memory::PagePoolControlBlock:

Public Member Functions

 PagePoolControlBlock ()=delete
 
 ~PagePoolControlBlock ()=delete
 
void initialize ()
 
void uninitialize ()
 

Public Attributes

uint64_t free_pool_head_
 Inclusive head of the circular queue. More...
 
uint64_t free_pool_count_
 Number of free pages. More...
 
assorted::FixedString< 60 > debug_pool_name_
 just for debugging/logging. More...
 
soc::SharedMutex lock_
 grab()/release() are protected with this lock. More...
 

Constructor & Destructor Documentation

foedus::memory::PagePoolControlBlock::PagePoolControlBlock ( )
delete
foedus::memory::PagePoolControlBlock::~PagePoolControlBlock ( )
delete

Member Function Documentation

void foedus::memory::PagePoolControlBlock::initialize ( )
inline

Definition at line 45 of file page_pool_pimpl.hpp.

References foedus::soc::SharedMutex::initialize(), and lock_.

Referenced by foedus::memory::PagePoolPimpl::initialize_once().

45  {
46  lock_.initialize();
47  }
void initialize(bool recursive=false)
soc::SharedMutex lock_
grab()/release() are protected with this lock.

Here is the call graph for this function:

Here is the caller graph for this function:

void foedus::memory::PagePoolControlBlock::uninitialize ( )
inline

Definition at line 48 of file page_pool_pimpl.hpp.

References lock_, and foedus::soc::SharedMutex::uninitialize().

Referenced by foedus::memory::PagePoolPimpl::uninitialize_once().

48  {
50  }
soc::SharedMutex lock_
grab()/release() are protected with this lock.

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

assorted::FixedString<60> foedus::memory::PagePoolControlBlock::debug_pool_name_

just for debugging/logging.

concise description of this pool instance. eg "VolatilePool-3".

Definition at line 58 of file page_pool_pimpl.hpp.

Referenced by foedus::memory::PagePoolPimpl::attach(), foedus::memory::PagePoolPimpl::get_debug_pool_name(), and foedus::memory::PagePoolPimpl::set_debug_pool_name().

uint64_t foedus::memory::PagePoolControlBlock::free_pool_head_

Inclusive head of the circular queue.

Be aware of wrapping around.

Definition at line 53 of file page_pool_pimpl.hpp.

Referenced by foedus::memory::PagePoolPimpl::free_pool_head(), and foedus::memory::PagePoolPimpl::initialize_once().

soc::SharedMutex foedus::memory::PagePoolControlBlock::lock_

grab()/release() are protected with this lock.

This lock is not contentious at all because we pack many pointers in a chunk.

Definition at line 64 of file page_pool_pimpl.hpp.

Referenced by foedus::memory::PagePoolPimpl::grab(), foedus::memory::PagePoolPimpl::grab_one(), initialize(), foedus::memory::PagePoolPimpl::release_impl(), foedus::memory::PagePoolPimpl::release_one(), and uninitialize().


The documentation for this struct was generated from the following file: