Rudiments
Public Member Functions | Static Public Member Functions | List of all members
thread Class Reference

Inherits object.

Public Member Functions

 thread ()
 
virtual ~thread ()
 
bool setStackSize (size_t stacksize)
 
bool getStackSize (size_t *stacksize)
 
bool spawn (void *(*function)(void *), void *arg, bool detached)
 
void exit (int32_t *status)
 
bool wait (int32_t *status)
 
bool detach ()
 
bool raiseSignal (int32_t signum)
 
void setRetryFailedSpawn (bool retry)
 
bool getRetryFailedSpawn ()
 
- Public Member Functions inherited from object
virtual ~object ()
 

Static Public Member Functions

static bool isSupported ()
 
static bool isReliable ()
 

Detailed Description

The thread class provides a simple thread implementation.

Constructor & Destructor Documentation

◆ thread()

thread::thread ( )

Creates an instance of the thread class.

◆ ~thread()

virtual thread::~thread ( )
virtual

Deletes this instance of the thread class.

Member Function Documentation

◆ detach()

bool thread::detach ( )

Detaches the thread so that it may exit without calling exit() and without another thread needing to call wait(). Returns true on success and false if an error occurred.

◆ exit()

void thread::exit ( int32_t *  status)

Causes a thread to exit with the value stored in the location pointed to by "status". Unless the calling thread is detached, if another thread is waiting on this thread using wait(), then that thread's wait() method will fall through.

◆ getRetryFailedSpawn()

bool thread::getRetryFailedSpawn ( )

Returns true if failed spawn() calls will be retried and false otherwise.

◆ getStackSize()

bool thread::getStackSize ( size_t *  stacksize)

Sets "stacksize" to this thread's stack size. Returns true on success and false if an error occurred.

◆ isReliable()

static bool thread::isReliable ( )
static

Returns true if the platform supports threads, and rudiments was built with thread support, and this platform's thread implementation is bellieved to be reliable.

Returns false if the platform doesn't support threads, rudiments was not built with thread support, or this platform's thread implementation is bellieved to be unreliable.

◆ isSupported()

static bool thread::isSupported ( )
static

Returns true if the platform supports threads and rudiments was built with thread support and false otherwise.

See also: isReliable().

◆ raiseSignal()

bool thread::raiseSignal ( int32_t  signum)

Sends signal "signum" to the thread.

◆ setRetryFailedSpawn()

void thread::setRetryFailedSpawn ( bool  retry)

If "retry" is true then spawn() calls will be automatically retried if they fail eg. because of insufficient system resources. If "retry" is set false then, if a spawn() fails, the system error is set to EAGAIN and spawn() returns false.

Defaults to true.

◆ setStackSize()

bool thread::setStackSize ( size_t  stacksize)

Sets this thread's stack size to "stacksize". Returns true on success and false if an error occurred.

◆ spawn()

bool thread::spawn ( void *(*)(void *)  function,
void *  arg,
bool  detached 
)

Starts a new thread by running whatever function was set by the setFunction() method and passing that function whatever argument was set by the setArgument() method. Returns true on success and false if an error occurred.

◆ wait()

bool thread::wait ( int32_t *  status)

Waits for the spawn()ed function to call exit() or return. This method should be called by a second thread. If non-NULL, "status" will be set to the exit status of the thread. Returns true on success and false if an error occurred.