OEThread

class OEThread

Abstracts away the notion of an operating system thread in a cross-platform way. Users can subclass this class and implement the OEThread.Run method in order to create new operating system threads running any arbitrary code.

Constructors

OEThread()

Default constructor.

GetArg

void *GetArg()

Used by the implementation to pass the void * argument from OEThread.Start to the OEThread.Run method in a new thread. Not guaranteed to return anything useful on all platforms, and may go away in a future version.

GetReturn

void *GetReturn()

Used by the implementation to pass the void * returned from OEThread.Run to the OEThread.Join method in a new thread. Not guaranteed to return anything useful on all platforms, and may go away in a future version. If the thread is still running, this method can data race with the running thread, this should only be called after this thread is joined.

GetStackSize

unsigned int GetStackSize() const

Return the stack size chosen for this thread by a previous call to OEThread.SetStackSize. By default, this method will return 0, specifying that the operating system’s default stack size will be used.

Join

void *Join()

Blocks and wait for the thread to finish, returning the void * returned by the overloaded OEThread.Run method.

Run

void *Run(void *targ)=0

Pure virtual method expected to be overloaded by the inheriting class. This method will be started in a separate operating system thread after a successful call to OEThread.Start.

SetArg

void SetArg(void *targ)

Used by the implementation to pass the void * argument from OEThread.Start to the OEThread.Run method in a new thread. Not guaranteed to return anything useful on all platforms, and may go away in a future version.

SetReturn

void SetReturn(void *targ)

Used by the implementation to pass the void * returned from OEThread.Run to the OEThread.Join method in a new thread. Not guaranteed to return anything useful on all platforms, and may go away in a future version.

SetStackSize

void SetStackSize(unsigned int stackSize)

Specify the maximum size a stack can grow for this newly created operating system thread. This method must be called before calling OEThread.Start. Depending on the platform and the operating system settings, OEThread.Start may fail and return false if the value is considered inappropriate by the operating system. The value of 0 specifies to just use the operating system default.

Start

bool Start(void *targ=0)

Returns true if the operating system thread is successfully created, false otherwise.