libfoedus-core
FOEDUS Core Library
thread_id.hpp File Reference

Typedefs of ID types used in thread package. More...

Detailed Description

Typedefs of ID types used in thread package.

Definition in file thread_id.hpp.

#include <stdint.h>
#include "foedus/cxx11.hpp"
Include dependency graph for thread_id.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 foedus
 Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
 
 foedus::thread
 Thread and Thread-Group, which abstracts NUMA-core/node and provides API to attach/detach tasks to pooled threads.
 

Typedefs

typedef uint8_t foedus::thread::ThreadGroupId
 Typedef for an ID of ThreadGroup (NUMA node). More...
 
typedef uint8_t foedus::thread::ThreadLocalOrdinal
 Typedef for a local ID of Thread (core), which is NOT unique across NUMA nodes. More...
 
typedef uint16_t foedus::thread::ThreadId
 Typedef for a global ID of Thread (core), which is unique across NUMA nodes. More...
 
typedef uint16_t foedus::thread::ThreadGlobalOrdinal
 Typedef for a globally and contiguously numbered ID of thread. More...
 
typedef uint64_t foedus::thread::ThreadTicket
 Typedef for a monotonically increasing ticket for thread impersonation. More...
 
typedef int64_t foedus::thread::TimeoutMicrosec
 Used as a general timeout parameter (in microseconds) for synchronous methods. More...
 

Enumerations

enum  foedus::thread::ThreadPolicy {
  foedus::thread::kScheduleOther = 0, foedus::thread::kScheduleFifo = 1, foedus::thread::kScheduleRr = 2, foedus::thread::kScheduleBatch = 3,
  foedus::thread::kScheduleIdle = 5
}
 Thread policy for worker threads. More...
 
enum  foedus::thread::ThreadPriority { foedus::thread::kPriorityIdle = 0, foedus::thread::kPriorityLowest = 1, foedus::thread::kPriorityDefault = 50, foedus::thread::kPriorityHighest = 99 }
 Thread priority for worker threads. More...
 
enum  foedus::thread::ThreadStatus {
  foedus::thread::kNotInitialized = 0, foedus::thread::kWaitingForTask, foedus::thread::kWaitingForExecution, foedus::thread::kRunningTask,
  foedus::thread::kWaitingForClientRelease, foedus::thread::kWaitingForTerminate, foedus::thread::kTerminated
}
 Impersonation status of each worker thread. More...
 

Functions

ThreadId foedus::thread::compose_thread_id (ThreadGroupId node, ThreadLocalOrdinal local_core)
 Returns a globally unique ID of Thread (core) for the given node and ordinal in the node. More...
 
ThreadGroupId foedus::thread::decompose_numa_node (ThreadId global_id)
 Extracts NUMA node ID from the given globally unique ID of Thread (core). More...
 
ThreadLocalOrdinal foedus::thread::decompose_numa_local_ordinal (ThreadId global_id)
 Extracts local ordinal from the given globally unique ID of Thread (core). More...
 
ThreadGlobalOrdinal foedus::thread::to_global_ordinal (ThreadId thread_id, uint8_t threads_per_nodes)
 Calculate ThreadGlobalOrdinal from ThreadId. More...
 

Variables

const ThreadGroupId foedus::thread::kMaxThreadGroupId = 0xFF
 Maximum possible value of ThreadGroupId. More...
 
const ThreadLocalOrdinal foedus::thread::kMaxThreadLocalOrdinal = 0xFF
 Maximum possible value of ThreadLocalOrdinal. More...
 
const ThreadId foedus::thread::kMaxThreadId = 0xFFFF
 Maximum possible value of ThreadId. More...