 
			
		Synchronization object allowing to sleep for given timespan. More...
#include <sync/bell.h>
 Inheritance diagram for Bell:
 Inheritance diagram for Bell: Collaboration diagram for Bell:
 Collaboration diagram for Bell:| Public Member Functions | |
| Bell () | |
| Constructor.  More... | |
| void | ring () | 
| Ring the bell.  More... | |
| unsigned int | residual () | 
| Returns the residual waiting time.  More... | |
| void | set (unsigned int ms) | 
| Set the bell's waiting time.  More... | |
| void | sleep () | 
| Sleep until the bell rings.  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... | |
| Thread * | dequeue () | 
| Removes the first element in the queue and returns it.  More... | |
| Iterator | begin () | 
| Iterator | end () | 
| Thread * | remove (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 itemto the beginning of the queue.  More... | |
| void | insertAfter (Thread *old_item, Thread *new_item) | 
| Inserts the element new_itemdirectly afterold_item.  More... | |
| Thread * | first () | 
| Returns the first element in the queue without removing it.  More... | |
| Thread * | next (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 | 
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.
| 
 | inline | 
Constructor.
Constructs a new bell; the newly created bell is, at first, disabled.
| void Bell::ring | ( | ) | 
Ring the bell.
Method called by the Bellringer once the waiting time passed. Wakes up the sleeping thread(s).
| unsigned int Bell::residual | ( | ) | 
Returns the residual waiting time.
Will use Bellringer::residual().
| void Bell::set | ( | unsigned int | ms | ) | 
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() | 
| 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()).
| 
 | static | 
Creates a temporary bell object and sleep for the given timespan.
| ms | time in milliseconds |