![]() |
Plasma Engine
2.0
|
This class is the base class for platform independent long running threads. More...
#include <Thread.h>

Public Types | |
| enum | plThreadStatus { Created = 0 , Running , Finished } |
| Describes the thread status. | |
Public Member Functions | |
| plThread (plStringView sName="plThread", plUInt32 uiStackSize=128 *1024) | |
| Initializes the runnable class. | |
| virtual | ~plThread () |
| Destructor checks if the thread is deleted while still running, which is not allowed as this is a data hazard. | |
| plThreadStatus | GetThreadStatus () const |
| Returns the thread status. | |
| bool | IsRunning () const |
| Helper function to determine if the thread is running. | |
| const char * | GetThreadName () const |
| Returns the thread name. | |
Public Member Functions inherited from plOSThread | |
| plOSThread (plOSThreadEntryPoint threadEntryPoint, void *pUserData=nullptr, plStringView sName="plOSThread", plUInt32 uiStackSize=128 *1024) | |
| Initializes the thread instance (e.g. thread creation etc.) | |
| virtual | ~plOSThread () |
| Destructor. | |
| void | Start () |
| Starts the thread. | |
| void | Join () |
| Waits in the calling thread until the thread has finished execution (e.g. returned from the thread function) | |
| const plThreadID & | GetThreadID () const |
| Returns the thread ID of the thread object, may be used in comparison operations with plThreadUtils::GetCurrentThreadID() for example. | |
Static Public Member Functions | |
| static const plThread * | GetCurrentThread () |
| Returns the current plThread if the current platform thread is an plThread. Returns nullptr otherwise. | |
Static Public Member Functions inherited from plOSThread | |
| static plInt32 | GetThreadCount () |
| Returns how many plOSThreads are currently active. | |
Static Public Attributes | |
| static plEvent< const plThreadEvent &, plMutex > | s_ThreadEvents |
| These events inform about threads starting and finishing. | |
Private Member Functions | |
| virtual plUInt32 | Run ()=0 |
| The run function can be used to implement a long running task in a thread in a platform independent way. | |
Friends | |
| plUInt32 | RunThread (plThread *pThread) |
Additional Inherited Members | |
Protected Attributes inherited from plOSThread | |
| plThreadHandle | m_hHandle |
| plThreadID | m_ThreadID |
| plOSThreadEntryPoint | m_EntryPoint |
| void * | m_pUserData |
| plString | m_sName |
| plUInt32 | m_uiStackSize |
This class is the base class for platform independent long running threads.
Used by deriving from this class and overriding the Run() method.
|
privatepure virtual |
The run function can be used to implement a long running task in a thread in a platform independent way.
Implemented in plAudioThread, plProcessThread, plRemoteThread, plTaskWorkerThread, and plThreadWithDispatcher.
|
static |
These events inform about threads starting and finishing.
The events are raised on the executing thread! That means thread-specific code may be executed during the event callback, e.g. to set up thread-local functionality.