A simple platform-intependent interface to execute and control threads.
More...
#include <OSD_Thread.hxx>
|
| OSD_Thread () |
| Empty constructor. More...
|
|
| OSD_Thread (const OSD_ThreadFunction &func) |
| Initialize the tool by the thread function. More...
|
|
| OSD_Thread (const OSD_Thread &other) |
| Copy constructor. More...
|
|
void | Assign (const OSD_Thread &other) |
| Copy thread handle from other OSD_Thread object. More...
|
|
void | operator= (const OSD_Thread &other) |
|
void | Destroy () |
| Destructor. On Windows, closes handle to the thread. On UNIX/Linux, does nothing. More...
|
|
| ~OSD_Thread () |
|
void | SetPriority (const Standard_Integer thePriority) |
|
void | SetFunction (const OSD_ThreadFunction &func) |
| Initialize the tool by the thread function. If the current thread handle is not null, nullifies it. More...
|
|
Standard_Boolean | Run (const Standard_Address data=0, const Standard_Integer WNTStackSize=0) |
| Starts a thread with thread function given in constructor, passing the specified input data (as void *) to it. The parameter WNTStackSize (on Windows only) specifies size of the stack to be allocated for the thread (by default - the same as for the current executable). Returns True if thread started successfully. More...
|
|
void | Detach () |
| Detaches the execution thread from this Thread object, so that it cannot be waited. Note that mechanics of this operation is different on UNIX/Linux (the thread is put to detached state) and Windows (the handle is closed). However, the purpose is the same: to instruct the system to release all thread data upon its completion. More...
|
|
Standard_Boolean | Wait () const |
|
Standard_Boolean | Wait (Standard_Address &result) const |
| Wait till the thread finishes execution. Returns True if wait was successful, False in case of error. More...
|
|
Standard_Boolean | Wait (const Standard_Integer time, Standard_Address &result) const |
| Waits for some time and if the thread is finished, it returns the result. The function returns false if the thread is not finished yet. More...
|
|
Standard_ThreadId | GetId () const |
| Returns ID of the currently controlled thread ID, or 0 if no thread is run. More...
|
|
A simple platform-intependent interface to execute and control threads.
OSD_Thread::OSD_Thread |
( |
| ) |
|
Initialize the tool by the thread function.
Note: On Windows, you might have to take an address of the thread function explicitly to pass it to this constructor without compiler error
OSD_Thread::OSD_Thread |
( |
const OSD_Thread & |
other | ) |
|
OSD_Thread::~OSD_Thread |
( |
| ) |
|
|
inline |
void OSD_Thread::Assign |
( |
const OSD_Thread & |
other | ) |
|
Auxiliary: returns ID of the current thread.
void OSD_Thread::Destroy |
( |
| ) |
|
Destructor. On Windows, closes handle to the thread. On UNIX/Linux, does nothing.
void OSD_Thread::Detach |
( |
| ) |
|
Detaches the execution thread from this Thread object, so that it cannot be waited. Note that mechanics of this operation is different on UNIX/Linux (the thread is put to detached state) and Windows (the handle is closed). However, the purpose is the same: to instruct the system to release all thread data upon its completion.
Returns ID of the currently controlled thread ID, or 0 if no thread is run.
void OSD_Thread::operator= |
( |
const OSD_Thread & |
other | ) |
|
|
inline |
Starts a thread with thread function given in constructor, passing the specified input data (as void *) to it. The parameter WNTStackSize (on Windows only) specifies size of the stack to be allocated for the thread (by default - the same as for the current executable). Returns True if thread started successfully.
Initialize the tool by the thread function. If the current thread handle is not null, nullifies it.
Note: On Windows, you might have to take an address of the thread function explicitly to pass it to this method without compiler error
Wait till the thread finishes execution. Returns True if wait was successful, False in case of error.
If successful and result argument is provided, saves the pointer (void*) returned by the thread function in result.
Note however that it is advisable not to rely upon returned result value, as it is not always the value actually returned by the thread function. In addition, on Windows it is converted via DWORD.
Waits for some time and if the thread is finished, it returns the result. The function returns false if the thread is not finished yet.
The documentation for this class was generated from the following file: