StuBS
Loading...
Searching...
No Matches
Bell Class Reference

Synchronization object allowing to sleep for given timespan. More...

#include <bell.h>

Inheritance diagram for Bell:
Collaboration diagram for Bell:

Public Member Functions

 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)
 Creates a temporary bell object and sleep for the given timespan.
 

Private Attributes

unsigned int counter
 Internal counter for managing bell objects in the Bellringer.
 

Friends

class Bellringer
 

Additional Inherited Members

- Static Protected Member Functions inherited from Waitingroom
static Thread ** getNext (Thread &th, unsigned i)
 Get the next thread of the queue.
 

Detailed Description

Synchronization object allowing to sleep for given timespan.

A bell is a synchronization object enabling one or more threads to sleep for a particular timespan.

Constructor & Destructor Documentation

◆ Bell()

Bell::Bell ( )
inline

Constructor.

Constructs a new bell; the newly created bell is, at first, disabled.

Member Function Documentation

◆ residual()

unsigned int Bell::residual ( )

Returns the residual waiting time.

Will use Bellringer::residual().

Returns
Time in milliseconds until the bell rings
Optional
Implement Method

◆ ring()

void Bell::ring ( )

Ring the bell.

Method called by the Bellringer once the waiting time passed. Wakes up the sleeping thread(s).

◆ set()

void Bell::set ( unsigned int ms)

Set the bell's waiting time.

This method can be used to set the desired waiting time.

Parameters
msTime in milliseconds; will be passed to Bellringer::job()
Optional
Implement Method

◆ sleep() [1/2]

void Bell::sleep ( )

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()).

Optional
Implement Method

◆ sleep() [2/2]

void Bell::sleep ( unsigned int ms)
static

Creates a temporary bell object and sleep for the given timespan.

Parameters
mstime in milliseconds

The documentation for this class was generated from the following files: