15#include "wsf_export.h"
17#include <condition_variable>
20#include "UtThread.hpp"
60 void WaitUntilWorkDone();
61 bool TryWaitUntilWorkDone(
double aTimeoutSecs);
71 virtual void Available();
100 std::condition_variable mWorkAddedCond;
109 bool mEndThread =
false;
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
virtual FunctionType Pause()=0
bool AssignWork()
Thread internal Run() control methods.
Definition WsfThread.hpp:49
std::mutex mFunctionWriteMutex
Definition WsfThread.hpp:97
std::condition_variable mWorkDoneCond
Definition WsfThread.hpp:96
~WsfThread() override=default
void Run() override
Definition WsfThread.cpp:26
bool StopWork()
Definition WsfThread.hpp:50
bool EndCriticalWork()
Definition WsfThread.cpp:128
bool Stopped() const
Definition WsfThread.hpp:45
virtual FunctionType DoWork()=0
bool CriticalWork() const
Thread Run() function status methods.
Definition WsfThread.hpp:43
FunctionType mSavedState
Definition WsfThread.hpp:92
FunctionType GetFunction() const
Definition WsfThread.hpp:39
FunctionType
Definition WsfThread.hpp:26
@ CRITICAL
Definition WsfThread.hpp:31
@ ASSIGNED
Definition WsfThread.hpp:29
@ STOPPED
Definition WsfThread.hpp:27
@ PAUSED
Definition WsfThread.hpp:30
@ AVAILABLE
Definition WsfThread.hpp:28
bool BeginCriticalWork()
Definition WsfThread.cpp:121
bool SetFunction(FunctionType aOldFunction, FunctionType aNewFunction)
Definition WsfThread.cpp:134
bool ReadyForWork() const
Definition WsfThread.hpp:44