sead::MainThread class

Base classes

class Thread

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

~MainThread() override

Public functions

void destroy() override
void quit(bool) override
void waitDone() override
void quitAndDestroySingleThread(bool) override
void setPriority(s32) override
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 quitAndWaitDoneSingleThread(bool is_jam) 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 calc_(MessageQueue::Element) override
void run_() virtual
auto getStackCheckStartAddress_() const -> uintptr_t virtual
void initStackCheck_()
void initStackCheckWithCurrentStackPointer_()
auto getDisposerHeap_() const -> Heap*

Protected variables

MessageQueue mMessageQueue
s32 mStackSize
ThreadListNode mListNode
Heap* mCurrentHeap
FindContainHeapCache mFindContainHeapCache
MessageQueue::BlockType mBlockType
MessageQueue::Element mQuitMsg
u32 mId
State mState
CoreIdMask mAffinity
void* mStackTop
void* mStackTopForCheck
s32 mPriority

Enum documentation

enum class sead::MainThread::HeapNullOption

enum class sead::MainThread::NodeClassType

Enumerators
Reflexible

sead::hostio::Reflexible

Node

sead::hostio::Node

Other

Other classes.

enum class sead::MainThread::AllocFlg

Function documentation

static u32 sead::MainThread::getListNodeOffset()

const SafeString& sead::MainThread::getName() const

void sead::MainThread::setName(const SafeString& name)

NodeClassType sead::MainThread::getNodeClassType() const virtual

Heap* sead::MainThread::getDisposerHeap_() const protected