#include <yateclass.h>
Inheritance diagram for Thread:
Public Types | |
enum | Priority { Lowest, Low, Normal, High, Highest } |
Public Member Functions | |
virtual void | cleanup () |
bool | startup () |
bool | error () const |
bool | running () const |
int | locks () const |
bool | locked () const |
const char * | name () const |
void | cancel (bool hard=false) |
bool | isCurrent () const |
Static Public Member Functions | |
static const char * | currentName () |
static void | yield (bool exitCheck=false) |
static void | sleep (unsigned int sec, bool exitCheck=false) |
static void | msleep (unsigned long msec, bool exitCheck=false) |
static void | usleep (unsigned long usec, bool exitCheck=false) |
static Thread * | current () |
static int | count () |
static bool | check (bool exitNow=true) |
static void | exit () |
static Priority | priority (const char *name, Priority defvalue=Normal) |
static const char * | priority (Priority prio) |
static void | killall () |
static void | preExec () |
Protected Member Functions | |
Thread (const char *name=0, Priority prio=Normal) | |
Thread (const char *name, const char *prio) | |
virtual | ~Thread () |
Friends | |
class | ThreadPrivate |
class | MutexPrivate |
A thread is a separate execution context that exists in the same address space. Threads make better use of multiple processor machines and allow blocking one execution thread while allowing other to run.
enum Priority |
Running priorities, their mapping is operating system dependent
Creates and starts a new thread
name | Static name of the thread (for debugging purpose only) | |
prio | Thread priority |
Thread | ( | const char * | name, | |
const char * | prio | |||
) | [protected] |
Creates and starts a new thread
name | Static name of the thread (for debugging purpose only) | |
prio | Thread priority level name |
virtual ~Thread | ( | ) | [protected, virtual] |
The destructor is called when the thread terminates
virtual void cleanup | ( | ) | [virtual] |
This method is called when the current thread terminates.
Reimplemented in Router.
bool startup | ( | ) |
Actually starts running the new thread which lingers after creation
bool error | ( | ) | const |
Check if the thread creation failed
bool running | ( | ) | const |
Check if the thread is running or not
int locks | ( | ) | const [inline] |
Count how many Yate mutexes are kept locked by this thread
bool locked | ( | ) | const [inline] |
Check if the thread is currently helding or attempting to lock a mutex
const char* name | ( | ) | const |
Get the name of this thread
static const char* currentName | ( | ) | [static] |
Get the name of the currently running thread
static void yield | ( | bool | exitCheck = false |
) | [static] |
Give up the currently running timeslice. Note that on some platforms it also sleeps for the operating system's scheduler resolution
exitCheck | Terminate the thread if asked so |
static void sleep | ( | unsigned int | sec, | |
bool | exitCheck = false | |||
) | [static] |
Sleep for a number of seconds
sec | Number of seconds to sleep | |
exitCheck | Terminate the thread if asked so |
static void msleep | ( | unsigned long | msec, | |
bool | exitCheck = false | |||
) | [static] |
Sleep for a number of milliseconds
msec | Number of milliseconds to sleep | |
exitCheck | Terminate the thread if asked so |
static void usleep | ( | unsigned long | usec, | |
bool | exitCheck = false | |||
) | [static] |
Sleep for a number of microseconds
usec | Number of microseconds to sleep, may be rounded to milliseconds on some platforms | |
exitCheck | Terminate the thread if asked so |
static Thread* current | ( | ) | [static] |
Get a pointer to the currently running thread
static int count | ( | ) | [static] |
Get the number of Yate created threads
static bool check | ( | bool | exitNow = true |
) | [static] |
Check if the current thread was asked to terminate.
exitNow | If thread is marked as cancelled then terminate immediately |
static void exit | ( | ) | [static] |
Terminates the current thread.
void cancel | ( | bool | hard = false |
) |
Terminates the specified thread.
hard | Kill the thread the hard way rather than just setting an exit check marker |
bool isCurrent | ( | ) | const [inline] |
Check if this thread is the currently running thread
Convert a priority name to a thread priority level
name | Name of the requested level | |
defvalue | Priority to return in case of an invalid name |
static const char* priority | ( | Priority | prio | ) | [static] |
Convert a priority level to a textual name
prio | Priority level to convert |
static void killall | ( | ) | [static] |
Kills all other running threads. Ouch! Must be called from the main thread or it does nothing.
static void preExec | ( | ) | [static] |
On some platforms this method kills all other running threads. Must be called after fork() but before any exec*() call.