StuBS
Bell Class Reference

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

#include <sync/bell.h>

Inheritance diagram for Bell:
[legend]
Collaboration diagram for Bell:
[legend]

Public Member Functions

 Bell ()
 Constructor. More...
 
void ring ()
 Ring the bell. More...
 
- Public Member Functions inherited from Waitingroom
 Waitingroom ()
 Constructor. More...
 
virtual ~Waitingroom ()
 Destructor. More...
 
virtual void remove (Thread *customer)
 Remove a given thread prematurely from the Waitingroom. More...
 
- Public Member Functions inherited from Queue< Thread >
 Queue ()
 Default constructor; initialized the queue as empty.
 
void enqueue (Thread *item)
 Enqueues the provided item at the end of the queue. More...
 
Threaddequeue ()
 Removes the first element in the queue and returns it. More...
 
Iterator begin ()
 
Iterator end ()
 
Threadremove (Thread *item, bool(*cmp)(Thread *, Thread *)=[](Thread *a, Thread *b) {return a==b;})
 Removes and returns a single element from the queue. More...
 
void insertFirst (Thread *item)
 Adds item to the beginning of the queue. More...
 
void insertAfter (Thread *old_item, Thread *new_item)
 Inserts the element new_item directly after old_item. More...
 
Threadfirst ()
 Returns the first element in the queue without removing it. More...
 
Threadnext (Thread *o)
 Returns the next element in the queue for a given element.
 

Static Public Member Functions

static void sleep (unsigned int ms)
 Creates a temporary bell object and sleep for the given timespan. More...
 

Friends

class Bellringer
 

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

◆ ring()

void Bell::ring ( )

Ring the bell.

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

Todo:
Implement Method

◆ sleep()

void Bell::sleep ( unsigned int  ms)
static

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

Parameters
mstime in milliseconds
Todo:
Implement Method

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