GNU CommonC++
|
A runlist is used to restrict concurrent exection to a limited set of concurrent sessions, much like a semaphore. More...
#include <misc.h>
Public Member Functions | |
Runlist (unsigned count=1) | |
Create a new runlist with a specified limit. | |
bool | add (Runable *run) |
Add a runable object to this runlist. | |
void | del (Runable *run) |
Remove a runable object from the wait list or notify when it is done running so that the used count can be decremented. | |
void | set (unsigned limit) |
Set the limit. | |
Public Member Functions inherited from ost::Mutex | |
Mutex (const char *name=NULL) | |
The mutex is always initialized as a recursive entity. | |
virtual | ~Mutex () |
Destroying the mutex removes any system resources associated with it. | |
void | nameMutex (const char *name) |
Enable setting of mutex name for deadlock debug. | |
void | enterMutex (void) |
Entering a Mutex locks the mutex for the current thread. | |
void | enter (void) |
Future abi will use enter/leave/test members. | |
void | leave (void) |
Future abi will use enter/leave/test members. | |
bool | test (void) |
Future abi will use enter/leave/test members. | |
bool | tryEnterMutex (void) |
Tries to lock the mutex for the current thread. | |
void | leaveMutex (void) |
Leaving a mutex frees that mutex for use by another thread. |
Protected Member Functions | |
void | check (void) |
Protected Attributes | |
unsigned | limit |
unsigned | used |
Additional Inherited Members | |
Static Public Member Functions inherited from ost::Mutex | |
static void | setDebug (bool mode) |
Enable or disable deadlock debugging. |
A runlist is used to restrict concurrent exection to a limited set of concurrent sessions, much like a semaphore.
However, the runlist differs in that it notifies objects when they become ready to run, rather than requiring them to wait and "block" for the semaphore count to become low enough to continue.
list of runable objects.
ost::Runlist::Runlist | ( | unsigned | count = 1 | ) |
Create a new runlist with a specified limit.
count | limit before wait queuing. |
bool ost::Runlist::add | ( | Runable * | run | ) |
Add a runable object to this runlist.
If the number of entries running is below the limit, then add returns true otherwise the entry is added to the list.
run | pointer to runable object. |
|
protected |
void ost::Runlist::del | ( | Runable * | run | ) |
Remove a runable object from the wait list or notify when it is done running so that the used count can be decremented.
run | pointer to runable object. |
void ost::Runlist::set | ( | unsigned | limit | ) |
|
protected |
Referenced by set().
|
protected |