A runlist is used to restrict concurrent exection to a limited set of concurrent sessions, much like a semaphore.
More...
#include <misc.h>
|
| Runlist (unsigned count=1) |
| Create a new runlist with a specified limit. More...
|
|
bool | add (Runable *run) |
| Add a runable object to this runlist. More...
|
|
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. More...
|
|
void | set (unsigned limit) |
| Set the limit. More...
|
|
void | nameMutex (const char *name) |
| Enable setting of mutex name for deadlock debug. More...
|
|
void | enterMutex (void) |
| Entering a Mutex locks the mutex for the current thread. More...
|
|
void | enter (void) |
| Future abi will use enter/leave/test members. More...
|
|
void | leave (void) |
| Future abi will use enter/leave/test members. More...
|
|
bool | test (void) |
| Future abi will use enter/leave/test members. More...
|
|
bool | tryEnterMutex (void) |
| Tries to lock the mutex for the current thread. More...
|
|
void | leaveMutex (void) |
| Leaving a mutex frees that mutex for use by another thread. More...
|
|
|
static void | setDebug (bool mode) |
| Enable or disable deadlock debugging. More...
|
|
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.
- Author
- David Sugar dyfet.nosp@m.@ost.nosp@m.el.co.nosp@m.m list of runable objects.
Definition at line 708 of file misc.h.
Runlist::Runlist |
( |
unsigned |
count = 1 | ) |
|
Create a new runlist with a specified limit.
- Parameters
-
count | limit before wait queuing. |
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.
- Returns
- true if immediately ready to run
- Parameters
-
run | pointer to runable object. |
void Runlist::check |
( |
void |
| ) |
|
|
protected |
Remove a runable object from the wait list or notify when it is done running so that the used count can be decremented.
- Parameters
-
run | pointer to runable object. |
void Mutex::enter |
( |
void |
| ) |
|
|
inlineinherited |
Future abi will use enter/leave/test members.
Definition at line 263 of file thread.h.
void Mutex::enterMutex |
( |
void |
| ) |
|
|
inherited |
Entering a Mutex locks the mutex for the current thread.
This also can be done using the ENTER_CRITICAL macro or by using the ++ operator on a mutex.
- See Also
- leaveMutex
void Mutex::leave |
( |
void |
| ) |
|
|
inlineinherited |
Future abi will use enter/leave/test members.
Definition at line 269 of file thread.h.
void Mutex::leaveMutex |
( |
void |
| ) |
|
|
inherited |
Leaving a mutex frees that mutex for use by another thread.
If the mutex has been entered (invoked) multiple times (recursivily) by the same thread, then it will need to be exited the same number of instances before it is free for re-use. This operation can also be done using the LEAVE_CRITICAL macro or by the – operator on a mutex.
- See Also
- enterMutex
void Mutex::nameMutex |
( |
const char * |
name | ) |
|
|
inlineinherited |
Enable setting of mutex name for deadlock debug.
- Parameters
-
Definition at line 248 of file thread.h.
void Runlist::set |
( |
unsigned |
limit | ) |
|
Set the limit.
- Parameters
-
static void Mutex::setDebug |
( |
bool |
mode | ) |
|
|
inlinestaticinherited |
Enable or disable deadlock debugging.
- Parameters
-
Definition at line 240 of file thread.h.
bool Mutex::test |
( |
void |
| ) |
|
|
inlineinherited |
Future abi will use enter/leave/test members.
- Returns
- true if entered.
Definition at line 277 of file thread.h.
bool Mutex::tryEnterMutex |
( |
void |
| ) |
|
|
inherited |
Tries to lock the mutex for the current thread.
Behaves like enterMutex , except that it doesn't block the calling thread if the mutex is already locked by another thread.
- Returns
- true if locking the mutex was succesful otherwise false
- See Also
- enterMutex
-
leaveMutex
The documentation for this class was generated from the following file: