+/// ThreadBase struct is the base of the hierarchy from where we derive all the
+/// specialized thread classes.
+
+struct ThreadBase : public std::thread {
+
+ virtual ~ThreadBase() = default;
+ virtual void idle_loop() = 0;
+ void notify_one();
+ void wait_for(volatile const bool& b);
+
+ Mutex mutex;
+ Spinlock spinlock;
+ ConditionVariable sleepCondition;
+ volatile bool exit = false;
+};
+
+