|
StuBS
|
Synchronization object allowing to sleep for given timespan. More...
#include <sync/bell.h>
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. | |
Public Member Functions inherited from Queue< T, ContainerType > | |
| Queue () | |
| Default constructor; initialized the queue as empty. | |
| void | enqueue (T *item) |
| Enqueues the provided item at the end of the queue. | |
| T * | dequeue () |
| Removes the first element in the queue and returns it. | |
| Iterator | begin () |
| Iterator | end () |
| T * | remove (T *item, bool(*cmp)(T *, T *)=[](T *a, T *b) {return a==b;}) |
| Removes and returns a single element from the queue. | |
| void | insertFirst (T *item) |
Adds item to the beginning of the queue. | |
| void | insertAfter (T *old_item, T *new_item) |
Inserts the element new_item directly after old_item. | |
| T * | first () |
| Returns the first element in the queue without removing it. | |
| T * | next (T *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 sleeps for the given timespan. | |
Private Member Functions | |
| Bell (const Bell &)=delete | |
| Bell & | operator= (const Bell &)=delete |
Private Attributes | |
| unsigned int | counter |
| Internal counter for managing bell objects in the Bellringer. | |
Friends | |
| class | Bellringer |
Additional Inherited Members | |
Protected Member Functions inherited from Queue< T, ContainerType >::Node | |
| Node () | |
Synchronization object allowing to sleep for given timespan.
A bell is a synchronization object enabling one thread to sleep for a particular timespan.
|
privatedelete |
|
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 sleeps for the given timespan.
| ms | time in milliseconds |
|
friend |
|
private |
Internal counter for managing bell objects in the Bellringer.