Thread class
Base classes
- class IDisposer
- class INamable
- class Reflexible
Derived classes
- class DelegateThread
- class MainThread
- class sead::NinJoyNpadDevice::VibrationThread
- class Worker
Public types
- enum class HeapNullOption { AlwaysUseSpecifiedHeap = 0, UseSpecifiedOrContainHeap = 1, DoNotAppendDisposerIfNoHeapSpecified = 2, UseSpecifiedOrCurrentHeap = 3 }
- enum class NodeClassType { Reflexible = 0, Node = 1, Other = 2 }
- enum class AllocFlg { Name = 1u << 0u, Meta = 1u << 1u }
Public static variables
- static const s32 cDefaultPriority
Public static functions
- static void yield()
- static void sleep(TickSpan howLong)
- static auto getListNodeOffset() -> u32
Constructors, destructors, conversion operators
-
Thread(const SafeString& name,
Heap* heap,
s32 priority,
MessageQueue::
BlockType block_type, MessageQueue:: Element quit_msg, s32 stack_size, s32 message_queue_size) - ~Thread() override
- Thread(const Thread&) deleted
Public functions
- auto operator=(const Thread&) -> Thread& deleted
- void destroy() virtual
-
auto sendMessage(MessageQueue::
Element msg, MessageQueue:: BlockType block_type) -> bool virtual -
auto recvMessage(MessageQueue::
BlockType block_type) -> MessageQueue:: Element virtual - auto getMessageQueue() const -> const MessageQueue& virtual
- auto start() -> bool virtual
- void quit(bool is_jam) virtual
- void waitDone() virtual
- void quitAndDestroySingleThread(bool is_jam) virtual
- void quitAndWaitDoneSingleThread(bool is_jam) virtual
- void setPriority(s32 prio) virtual
- auto getPriority() const -> s32 virtual
-
auto getBlockType() const -> MessageQueue::
BlockType virtual - auto getStackSize() const -> s32 virtual
- auto calcStackUsedSizePeak() const -> s32 virtual
- auto getId() const -> u32
- auto getState() const -> State
- auto isDone() const -> bool
- auto isActive() const -> bool
- auto getAffinity() const -> const CoreIdMask&
- void setAffinity(const CoreIdMask& affinity)
- void checkStackOverFlow(const char* source_file, s32 source_line) const
- void checkStackEndCorruption(const char* source_file, s32 source_line) const
- void checkStackPointerOverFlow(const char* source_file, s32 source_line) const
- void setStackOverflowExceptionEnable(bool)
- auto getThreadListNode() -> ThreadListNode*
- auto isDefaultPriority() const -> bool
- auto getCurrentHeap() const -> Heap*
- auto setCurrentHeap(Heap* heap) -> Heap*
- auto getFindContainHeapCache() -> FindContainHeapCache*
- auto getName() const -> const SafeString&
- void setName(const SafeString& name)
- auto getNodeClassType() const -> NodeClassType virtual
Protected functions
- void run_() virtual
-
void calc_(MessageQueue::
Element msg) pure virtual - auto getStackCheckStartAddress_() const -> uintptr_t virtual
- void initStackCheck_()
- void initStackCheckWithCurrentStackPointer_()
- auto getDisposerHeap_() const -> Heap*
Protected variables
Enum documentation
enum class sead:: Thread:: HeapNullOption
#include <heap/seadDisposer.h>
enum class sead:: Thread:: NodeClassType
#include <hostio/seadHostIOReflexible.h>
| Enumerators | |
|---|---|
| Reflexible | |
| Node | |
| Other |
Other classes. |
enum class sead:: Thread:: AllocFlg
#include <hostio/seadHostIOReflexible.h>
Function documentation
static u32 sead:: Thread:: getListNodeOffset()
#include <heap/seadDisposer.h>
const SafeString& sead:: Thread:: getName() const
#include <prim/seadNamable.h>
void sead:: Thread:: setName(const SafeString& name)
#include <prim/seadNamable.h>
NodeClassType sead:: Thread:: getNodeClassType() const virtual
#include <hostio/seadHostIOReflexible.h>
Heap* sead:: Thread:: getDisposerHeap_() const protected
#include <heap/seadDisposer.h>