Ark Server API (ASA) - Wiki
|
#include <RunnableThread.h>
Public Types | |
enum class | ThreadType { Real , Fake , Forkable } |
Public Member Functions | |
virtual void | SetThreadPriority (EThreadPriority NewPriority)=0 |
virtual bool | SetThreadAffinity (const FThreadAffinity &Affinity) |
virtual void | Suspend (bool bShouldPause=true)=0 |
virtual bool | Kill (bool bShouldWait=true)=0 |
virtual void | WaitForCompletion ()=0 |
virtual FRunnableThread::ThreadType | GetThreadType () const |
const uint32 | GetThreadID () const |
const FString & | GetThreadName () const |
EThreadPriority | GetThreadPriority () const |
FRunnableThread () | |
virtual | ~FRunnableThread () |
Static Public Member Functions | |
static uint32 | GetTlsSlot () |
static FRunnableThread * | Create (class FRunnable *InRunnable, const TCHAR *ThreadName, uint32 InStackSize=0, EThreadPriority InThreadPri=TPri_Normal, uint64 InThreadAffinityMask=FPlatformAffinity::GetNoAffinityMask(), EThreadCreateFlags InCreateFlags=EThreadCreateFlags::None) |
static FRunnableThread * | GetRunnableThread () |
Protected Member Functions | |
virtual bool | CreateInternal (FRunnable *InRunnable, const TCHAR *InThreadName, uint32 InStackSize=0, EThreadPriority InThreadPri=TPri_Normal, uint64 InThreadAffinityMask=0, EThreadCreateFlags InCreateFlags=EThreadCreateFlags::None)=0 |
void | SetTls () |
void | FreeTls () |
Protected Attributes | |
FString | ThreadName |
FRunnable * | Runnable |
FEvent * | ThreadInitSyncEvent |
uint64 | ThreadAffinityMask |
EThreadPriority | ThreadPriority |
uint32 | ThreadID |
Private Member Functions | |
virtual void | Tick () |
virtual void | OnPostFork () |
void | PostCreate (EThreadPriority ThreadPriority) |
Static Private Member Functions | |
static void | SetupCreatedThread (FRunnableThread *&NewThread, class FRunnable *InRunnable, const TCHAR *ThreadName, uint32 InStackSize, EThreadPriority InThreadPri, uint64 InThreadAffinityMask, EThreadCreateFlags InCreateFlags) |
Static Private Attributes | |
static uint32 | RunnableTlsSlot |
Friends | |
class | FThreadSingletonInitializer |
class | FTlsAutoCleanup |
class | FThreadManager |
class | FForkableThread |
class | FForkProcessHelper |
Interface for runnable threads.
This interface specifies the methods used to manage a thread's life cycle.
Definition at line 19 of file RunnableThread.h.
|
strong |
List of unique thread types we can create
Enumerator | |
---|---|
Real | |
Fake | |
Forkable |
Definition at line 92 of file RunnableThread.h.
FRunnableThread::FRunnableThread | ( | ) |
Default constructor.
|
virtual |
Virtual destructor
|
static |
Factory method to create a thread with the specified stack size and thread priority.
InRunnable | The runnable object to execute |
ThreadName | Name of the thread |
InStackSize | The size of the stack to create. 0 means use the current thread's stack size |
InThreadPri | Tells the thread whether it needs to adjust its priority or not. Defaults to normal priority |
|
protectedpure virtual |
Creates the thread with the specified stack size and thread priority.
InRunnable | The runnable object to execute |
ThreadName | Name of the thread |
InStackSize | The size of the stack to create. 0 means use the current thread's stack size |
InThreadPri | Tells the thread whether it needs to adjust its priority or not. Defaults to normal priority |
|
protected |
Deletes all FTlsAutoCleanup objects created for this thread.
|
inlinestatic |
Definition at line 145 of file RunnableThread.h.
Thread ID for this thread
Definition at line 114 of file RunnableThread.h.
Retrieves the given name of the thread
Definition at line 125 of file RunnableThread.h.
|
inline |
Returns the runnable's thread priority
Definition at line 131 of file RunnableThread.h.
|
inlinevirtual |
Returns the type of thread this is
Definition at line 103 of file RunnableThread.h.
Gets a new Tls slot for storing the runnable thread pointer.
Tells the thread to exit. If the caller needs to know when the thread has exited, it should use the bShouldWait value. It's highly recommended not to kill the thread without waiting for it. Having a thread forcibly destroyed can cause leaks and deadlocks.
The kill method is calling Stop() on the runnable to kill the thread gracefully.
bShouldWait | If true, the call will wait infinitely for the thread to exit. |
Called on the forked process when the forkable thread can create a real thread
Definition at line 202 of file RunnableThread.h.
|
private |
Called after the internal thread is created so it can register debug information
|
inlinevirtual |
Changes the thread affinity of the currently running thread
ThreadAffinityMask | The thread affinity to change to (can be 0 to keep previously set affinity mask) |
ProcessorGroup | The thread group to change to |
Definition at line 66 of file RunnableThread.h.
|
pure virtual |
Changes the thread priority of the currently running thread
NewPriority | The thread priority to change to |
|
protected |
Stores this instance in the runnable thread TLS slot.
|
staticprivate |
Called to setup a newly created RunnableThread
Tells the thread to either pause execution or resume depending on the passed in value.
bShouldPause | Whether to pause the thread (true) or resume (false) |
Used by the thread manager to tick threads in single-threaded mode
Definition at line 197 of file RunnableThread.h.
Halts the caller until this thread is has completed its work.
Definition at line 24 of file RunnableThread.h.
|
friend |
Definition at line 25 of file RunnableThread.h.
|
friend |
Definition at line 23 of file RunnableThread.h.
Definition at line 21 of file RunnableThread.h.
|
friend |
Definition at line 22 of file RunnableThread.h.
|
protected |
The runnable object to execute on this thread.
Definition at line 177 of file RunnableThread.h.
|
staticprivate |
Index of TLS slot for FRunnableThread pointer.
Definition at line 28 of file RunnableThread.h.
|
protected |
The Affinity to run the thread with.
Definition at line 183 of file RunnableThread.h.
|
protected |
ID set during thread creation.
Definition at line 189 of file RunnableThread.h.
|
protected |
Sync event to make sure that Init() has been completed before allowing the main thread to continue.
Definition at line 180 of file RunnableThread.h.
|
protected |
Holds the name of the thread.
Definition at line 174 of file RunnableThread.h.
|
protected |
The priority to run the thread at.
Definition at line 186 of file RunnableThread.h.