StuBS
Waitingroom Class Reference

List of threads waiting for an event. More...

#include <sync/waitingroom.h>

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

Public Member Functions

 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.
 

Detailed Description

List of threads waiting for an event.

The class Waitingroom implements a list of threads that all wait for one particular event.

The destructor should be virtual to properly cleanup derived classes.

Constructor & Destructor Documentation

◆ Waitingroom()

Waitingroom::Waitingroom ( )
inline

Constructor.

Creates an empty Waitingroom

◆ ~Waitingroom()

Waitingroom::~Waitingroom ( )
virtual

Destructor.

The destructor removes and awakes all remaining threads.

Todo:
Implement Destructor

Member Function Documentation

◆ remove()

void Waitingroom::remove ( Thread customer)
virtual

Remove a given thread prematurely from the Waitingroom.

Todo:
Implement Method

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