40 :
mDone(false), mAlive(false), mName(name), mInterrupted(false), mDedicatedThread(false) {}
78 mDedicatedThread =
true;
80 mThread = std::async(std::launch::async, &runThread,
this);
119 if (mDedicatedThread ==
true) {
120 mAlive = (mThread.wait_for(std::chrono::milliseconds(0)) != std::future_status::ready);
140 std::this_thread::sleep_for(std::chrono::milliseconds(millis));
194 mUncaughtExceptionHandler = eh;
222 std::future<void> mThread;
227 std::shared_ptr<UncaughtExceptionHandler> mUncaughtExceptionHandler;
232 bool mDedicatedThread;
241 static void runThread(
void* arg)
243 ((
Thread*)arg)->execute();
249 virtual void execute() = 0;
Thread(const std::string &name)
bool isInterrupted() const
void setUncaughtExceptionHandler(std::shared_ptr< UncaughtExceptionHandler > eh)
void setName(const std::string &name)
static void sleep(long millis)
virtual ~Thread()=default