Open CASCADE Technology 6.6.0
Public Member Functions | Static Public Member Functions
OSD_Thread Class Reference

A simple platform-intependent interface to execute
and control threads.

#include <OSD_Thread.hxx>

Public Member Functions

 OSD_Thread ()
 Empty constructor

 OSD_Thread (const OSD_ThreadFunction &func)
 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 (const OSD_Thread &other)
 Copy constructor

void Assign (const OSD_Thread &other)
 Copy thread handle from other OSD_Thread object.

void operator= (const OSD_Thread &other)
void Destroy ()
 Destructor. On Windows, closes handle to the thread.
On UNIX/Linux, does nothing.

 ~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.

Note: On Windows, you might have to take an address of the thread
function explicitly to pass it to this method without compiler error

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

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.

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.

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.

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.

Standard_ThreadId GetId () const
 Returns ID of the currently controlled thread ID,
or 0 if no thread is run

Static Public Member Functions

static Standard_ThreadId Current ()
 Auxiliary: returns ID of the current thread


Constructor & Destructor Documentation

OSD_Thread::OSD_Thread ( )
OSD_Thread::OSD_Thread ( const OSD_ThreadFunction func)
OSD_Thread::OSD_Thread ( const OSD_Thread other)
OSD_Thread::~OSD_Thread ( ) [inline]

Member Function Documentation

void OSD_Thread::Assign ( const OSD_Thread other)
static Standard_ThreadId OSD_Thread::Current ( ) [static]
void OSD_Thread::Destroy ( )
void OSD_Thread::Detach ( )
Standard_ThreadId OSD_Thread::GetId ( ) const
void OSD_Thread::operator= ( const OSD_Thread other) [inline]
Standard_Boolean OSD_Thread::Run ( const Standard_Address  data = 0,
const Standard_Integer  WNTStackSize = 0 
)
void OSD_Thread::SetFunction ( const OSD_ThreadFunction func)
void OSD_Thread::SetPriority ( const Standard_Integer  thePriority)
Standard_Boolean OSD_Thread::Wait ( ) const
Standard_Boolean OSD_Thread::Wait ( const Standard_Integer  time,
Standard_Address result 
) const
Standard_Boolean OSD_Thread::Wait ( Standard_Address result) const

The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines