28 lines
584 B
C++
28 lines
584 B
C++
// Copyright (c) 2013-2018 United States Government as represented by the Administrator of the
|
|
// National Aeronautics and Space Administration. All Rights Reserved.
|
|
|
|
#include "Timer.h"
|
|
using namespace std;
|
|
|
|
namespace XPC {
|
|
void Timer::start(const chrono::milliseconds interval, const Callback &callback) {
|
|
{
|
|
running.test_and_set();
|
|
th = thread([=]()
|
|
{
|
|
while (running.test_and_set()) {
|
|
this_thread::sleep_for(interval);
|
|
callback();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
void Timer::stop() {
|
|
running.clear();
|
|
if(th.joinable()) {
|
|
th.join();
|
|
}
|
|
}
|
|
}
|