libfoedus-core
FOEDUS Core Library
foedus::soc::ThreadMemoryAnchors Struct Reference

Part of NodeMemoryAnchors for each thread. More...

Detailed Description

Part of NodeMemoryAnchors for each thread.

Definition at line 409 of file shared_memory_repo.hpp.

#include <shared_memory_repo.hpp>

Collaboration diagram for foedus::soc::ThreadMemoryAnchors:

Public Types

enum  Constants {
  kThreadMemorySize = 1 << 15, kTaskInputMemorySize = 1 << 19, kTaskOutputMemorySize = 1 << 19, kMcsWwLockMemorySize = 1 << 19,
  kMcsRwLockMemorySize = 1 << 19, kMcsRwAsyncMappingMemorySize = 1 << 19
}
 

Public Member Functions

 ThreadMemoryAnchors ()
 
 ~ThreadMemoryAnchors ()
 
 ThreadMemoryAnchors (const ThreadMemoryAnchors &other)=delete
 
ThreadMemoryAnchorsoperator= (const ThreadMemoryAnchors &other)=delete
 

Public Attributes

thread::ThreadControlBlockthread_memory_
 Status and synchronization mechanism for impersonation of this thread. More...
 
void * task_input_memory_
 Input buffer for an impersonated task. More...
 
void * task_output_memory_
 Output buffer for an impersonated task. More...
 
xct::McsWwBlockmcs_ww_lock_memories_
 Pre-allocated MCS block for each thread. More...
 
xct::McsRwSimpleBlockmcs_rw_simple_lock_memories_
 
xct::McsRwExtendedBlockmcs_rw_extended_lock_memories_
 
xct::McsRwAsyncMappingmcs_rw_async_mappings_memories_
 

Member Enumeration Documentation

Constructor & Destructor Documentation

foedus::soc::ThreadMemoryAnchors::ThreadMemoryAnchors ( )
inline

Definition at line 418 of file shared_memory_repo.hpp.

418 { std::memset(this, 0, sizeof(*this)); }
foedus::soc::ThreadMemoryAnchors::~ThreadMemoryAnchors ( )
inline

Definition at line 419 of file shared_memory_repo.hpp.

419 {}
foedus::soc::ThreadMemoryAnchors::ThreadMemoryAnchors ( const ThreadMemoryAnchors other)
delete

Member Function Documentation

ThreadMemoryAnchors& foedus::soc::ThreadMemoryAnchors::operator= ( const ThreadMemoryAnchors other)
delete

Member Data Documentation

xct::McsRwAsyncMapping* foedus::soc::ThreadMemoryAnchors::mcs_rw_async_mappings_memories_

Definition at line 452 of file shared_memory_repo.hpp.

Referenced by foedus::thread::ThreadRef::ThreadRef().

xct::McsRwExtendedBlock* foedus::soc::ThreadMemoryAnchors::mcs_rw_extended_lock_memories_

Definition at line 451 of file shared_memory_repo.hpp.

Referenced by foedus::thread::ThreadRef::ThreadRef().

xct::McsRwSimpleBlock* foedus::soc::ThreadMemoryAnchors::mcs_rw_simple_lock_memories_

Definition at line 450 of file shared_memory_repo.hpp.

Referenced by foedus::thread::ThreadRef::ThreadRef().

xct::McsWwBlock* foedus::soc::ThreadMemoryAnchors::mcs_ww_lock_memories_

Pre-allocated MCS block for each thread.

Index is node-local thread ordinal. Array of McsWwBlock. 512kb (==sizeof(McsWwBlock) * 64k) for each thread.

Definition at line 448 of file shared_memory_repo.hpp.

Referenced by foedus::thread::ThreadRef::ThreadRef().

void* foedus::soc::ThreadMemoryAnchors::task_input_memory_

Input buffer for an impersonated task.

Always 512kb (so far, make it configurable later).

Definition at line 435 of file shared_memory_repo.hpp.

Referenced by foedus::thread::ThreadRef::ThreadRef().

void* foedus::soc::ThreadMemoryAnchors::task_output_memory_

Output buffer for an impersonated task.

Always 512kb (so far, make it configurable later).

Definition at line 441 of file shared_memory_repo.hpp.

Referenced by foedus::thread::ThreadRef::ThreadRef().

thread::ThreadControlBlock* foedus::soc::ThreadMemoryAnchors::thread_memory_

Status and synchronization mechanism for impersonation of this thread.

Always 32kb (a bit large mainly due to the size of FixedErrorStack).

Definition at line 429 of file shared_memory_repo.hpp.

Referenced by foedus::thread::ThreadRef::ThreadRef().


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