Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Examples  

corelinux::Thread Class Reference

Thread is a framework for the creation, management, and destruction of caller threads. More...

#include <Thread.hpp>

Inheritance diagram for corelinux::Thread::

corelinux::Synchronized List of all members.

Public Methods

 Thread (void) throw ( Assertion )
 Default constructor.

virtual ~Thread (void)
 Virtual destructor.


Static Public Methods

Int getKernelError (void)
 getKernelError returns the thread instance errno for the last kernel call the thread made. More...

ThreadIdentifier getThreadIdentifier (void)
 getThreadIdentifier retrieves the kernel process id for the caller thread. More...

ThreadIdentifier getParentThreadIdentifier (void)
 getParentThreadIdentifier retrieves the parent thread of the current thread. More...

ThreadIdentifierCref getThreadManagerIdentifier (void)
 getThreadManagerIdentifier retrieves the thread that Thread was instantiated from. More...

ThreadContextCref getThreadContext (ThreadIdentifierCref) throw ( InvalidThreadException )
 Retrieve a ThreadContext given a identifier. More...

Count getCreatedThreadCount (void)
 Retrieve the number of created threads. More...

Count getActiveThreadCount (void)
 Retrieve the number of threads that are starting or running. More...

Count getBlockedThreadCount (void)
 Retrieve the number of threads that are waiting ro tun. More...

Count getCompletedThreadCount (void)
 Retrieve the number of threads that are not starting or running or waiting to run. More...

void dump (void)
 Debugging method for the moment.

ThreadIdentifier startThread (ThreadContextRef)
 Start a thread as described by the context. More...

Int waitForThread (ThreadIdentifierCref) throw ( InvalidThreadException )
 Blocks the caller until the thread has ended execution, retrieving the return code from the associated thread context. More...

void destroyThreadContext (ThreadIdentifierCref) throw ( InvalidThreadException, Assertion )
 Destroys the managed context for the given identifier. More...

Int getThreadPriority (ThreadIdentifierCref) throw ( InvalidThreadException, Assertion )
 Get thread priority for the given indentifier. More...

void setThreadPriority (ThreadIdentifierCref, Int) throw ( InvalidThreadException, Assertion )
 Set thread priority for the given indentifier. More...


Protected Methods

 Thread (ThreadCref) throw ( Assertion )
 Copy constructor won't do, its a singleton. More...

ThreadRef operator= (ThreadCref) throw ( Assertion )
 Assignment operator won't do, we should never get here anyway but the compiler will generate the missing method. More...

bool operator== (ThreadCref) const throw ( Assertion )
 Equality operator not valid for class utility. More...


Static Protected Methods

void threadTerminated (Int, VoidPtr, VoidPtr)

Static Protected Attributes

ThreadManager theThreadManager
 The singleton instance of Thread for synchronization.


Detailed Description

Thread is a framework for the creation, management, and destruction of caller threads.

It accomplishes this by allowing the caller to setup a context for execution and calling their defined entry point. There is still much work to be done such as:


Constructor & Destructor Documentation

corelinux::Thread::Thread ThreadCref    throw ( Assertion ) [protected]
 

Copy constructor won't do, its a singleton.

Parameters:
Thread  reference to another Thread
Exceptions:
Assertion  NEVER_GET_HERE


Member Function Documentation

void corelinux::Thread::destroyThreadContext ThreadIdentifierCref    anId throw ( InvalidThreadException, Assertion ) [static]
 

Destroys the managed context for the given identifier.

Parameters:
ThreadIdentifier  unique thread id
Exceptions:
InvalidThreadException  if the thread id is not one in the managed store.
Assertion  if the thread is in a running state.

Count corelinux::Thread::getActiveThreadCount void    [static]
 

Retrieve the number of threads that are starting or running.

Returns:
Count number of active threads

Count corelinux::Thread::getBlockedThreadCount void    [static]
 

Retrieve the number of threads that are waiting ro tun.

Returns:
Count number of active threads

Count corelinux::Thread::getCompletedThreadCount void    [static]
 

Retrieve the number of threads that are not starting or running or waiting to run.

Returns:
Count number of completed threads

Count corelinux::Thread::getCreatedThreadCount void    [static]
 

Retrieve the number of created threads.

Returns:
Count number of active threads

Int corelinux::Thread::getKernelError void    [static]
 

getKernelError returns the thread instance errno for the last kernel call the thread made.

Returns:
Int errno for thread function

ThreadIdentifier corelinux::Thread::getParentThreadIdentifier void    [static]
 

getParentThreadIdentifier retrieves the parent thread of the current thread.

Returns:
ThreadIdentifier identifies the parent

ThreadContextCref corelinux::Thread::getThreadContext ThreadIdentifierCref    anId throw ( InvalidThreadException ) [static]
 

Retrieve a ThreadContext given a identifier.

Parameters:
ThreadIdentifier  unique id
Returns:
ThreadContext const reference
Exceptions:
InvalidThreadException  if it does not exist.

ThreadIdentifier corelinux::Thread::getThreadIdentifier void    [static]
 

getThreadIdentifier retrieves the kernel process id for the caller thread.

Returns:
ThreadIdentifier identifies the caller

ThreadIdentifierCref corelinux::Thread::getThreadManagerIdentifier void    [static]
 

getThreadManagerIdentifier retrieves the thread that Thread was instantiated from.

Returns:
ThreadIdentifier identifies the owner

Int corelinux::Thread::getThreadPriority ThreadIdentifierCref    anId throw ( InvalidThreadException, Assertion ) [static]
 

Get thread priority for the given indentifier.

Parameters:
ThreadIdentifier  unique thread id
Exceptions:
InvalidThreadException  if the thread id is not one in the managed store.
Assertion  if the thread is in a running state.

ThreadRef corelinux::Thread::operator= ThreadCref    throw ( Assertion ) [protected]
 

Assignment operator won't do, we should never get here anyway but the compiler will generate the missing method.

Parameters:
Thread  reference to another Thread
Returns:
Thread reference to self
Exceptions:
Assertion  NEVER_GET_HERE

bool corelinux::Thread::operator== ThreadCref    const throw ( Assertion ) [protected]
 

Equality operator not valid for class utility.

Parameters:
Thread  reference to Thread
Returns:
bool True if equal
Exceptions:
Assertion  NEVER_GET_HERE

void corelinux::Thread::setThreadPriority ThreadIdentifierCref    anId,
Int    prio
throw ( InvalidThreadException, Assertion ) [static]
 

Set thread priority for the given indentifier.

Parameters:
ThreadIdentifier  unique thread id
prio  priority value
Exceptions:
InvalidThreadException  if the thread id is not one in the managed store.
Assertion  if the thread is in a running state.

ThreadIdentifier corelinux::Thread::startThread ThreadContextRef    aContextRef [static]
 

Start a thread as described by the context.

Parameters:
ThreadContext  reference to thread context object. This object is copied into a managed context.
Returns:
ThreadIdentifier identifies the process/thread id as assigned by the operating system.

Int corelinux::Thread::waitForThread ThreadIdentifierCref    anId throw ( InvalidThreadException ) [static]
 

Blocks the caller until the thread has ended execution, retrieving the return code from the associated thread context.

Parameters:
ThreadIdentifier  unique thread id
Returns:
Int return code from thread context
Exceptions:
InvalidThreadException  if not a valid thread identifier.


The documentation for this class was generated from the following files:
This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium