StuBS
|
Guarded interface to Bell objects used by user applications. More...
#include <guarded_bell.h>
Public Member Functions | |
unsigned int | residual () |
Returns the residual waiting time. | |
void | set (unsigned int ms) |
Set the bell's waiting time. | |
void | sleep () |
Sleep until the bell rings. | |
Public Member Functions inherited from Bell | |
Bell () | |
Constructor. | |
void | ring () |
Ring the bell. | |
unsigned int | residual () |
Returns the residual waiting time. | |
void | set (unsigned int ms) |
Set the bell's waiting time. | |
void | sleep () |
Sleep until the bell rings. | |
Public Member Functions inherited from Waitingroom | |
Waitingroom () | |
Constructor. | |
virtual | ~Waitingroom () |
Destructor. | |
virtual void | remove (Thread *customer) |
Remove a given thread prematurely from the Waitingroom. | |
Static Public Member Functions | |
static void | sleep (unsigned int ms) |
Sleep until the bell rings. | |
Static Public Member Functions inherited from Bell | |
static void | sleep (unsigned int ms) |
Creates a temporary bell object and sleep for the given timespan. | |
Additional Inherited Members | |
Static Protected Member Functions inherited from Waitingroom | |
static Thread ** | getNext (Thread &th, unsigned i) |
Get the next thread of the queue. | |
Guarded interface to Bell objects used by user applications.
Implements the system call interface for class Bell. All methods provided by this class are wrappers for the respective method from the base class, which provide additional synchronization by using the class Guarded.
|
inline |
Returns the residual waiting time.
Will use Bellringer::residual().
|
inline |
Set the bell's waiting time.
This method can be used to set the desired waiting time.
ms | Time in milliseconds; will be passed to Bellringer::job() |
|
inline |
Sleep until the bell rings.
The bell needs to be configured via Bell::set() prior to calling this method and should not have rung already. (see Bell::residual()).
|
inlinestatic |
Sleep until the bell rings.
The bell needs to be configured via Bell::set() prior to calling this method and should not have rung already. (see Bell::residual()).