Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages | Examples

Runlist Class Reference

A runlist is used to restrict concurrent exection to a limited set of concurrent sessions, much like a semaphore.list of runable objects. More...

#include <misc.h>

Inheritance diagram for Runlist:

Mutex List of all members.

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.

Protected Member Functions

void check (void)

Protected Attributes

unsigned limit
unsigned used

Detailed Description

A runlist is used to restrict concurrent exection to a limited set of concurrent sessions, much like a semaphore.list of runable objects.

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@ostel.com>


Constructor & Destructor Documentation

Runlist::Runlist unsigned  count = 1  ) 
 

Create a new runlist with a specified limit.

Parameters:
limit before wait queuing.


Member Function Documentation

bool 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.

Returns:
true if immediately ready to run
Parameters:
runable object.

void Runlist::check void   )  [protected]
 

void 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.

Parameters:
runable object.

void Runlist::set unsigned  limit  ) 
 

Set the limit.

Parameters:
limit to use.


Member Data Documentation

unsigned Runlist::limit [protected]
 

unsigned Runlist::used [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Sep 13 02:19:09 2005 for Bayonne by  doxygen 1.4.4