Fix Timer bug
This commit is contained in:
@@ -1,5 +1,3 @@
|
|||||||
#include <iostream>
|
|
||||||
|
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include "Util.h"
|
#include "Util.h"
|
||||||
#include "Timer.h"
|
#include "Timer.h"
|
||||||
@@ -21,36 +19,11 @@ Timer::~Timer()
|
|||||||
Wait();
|
Wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer::Timer(Timer&& other) :
|
|
||||||
m_run(static_cast<bool>(other.m_run)),
|
|
||||||
m_identifier(other.m_identifier),
|
|
||||||
m_thread(std::move(other.m_thread))
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer& Timer::operator=(Timer&& other)
|
|
||||||
{
|
|
||||||
m_run = static_cast<bool>(other.m_run);
|
|
||||||
m_identifier = std::move(other.m_identifier);
|
|
||||||
m_thread = std::move(other.m_thread);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Timer::operator==(const Timer& other) const
|
bool Timer::operator==(const Timer& other) const
|
||||||
{
|
{
|
||||||
return m_identifier == other.Identifier();
|
return m_identifier == other.Identifier();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Timer::operator==(const std::string& identifier) const
|
|
||||||
{
|
|
||||||
return m_identifier == identifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Timer::operator==(bool running) const
|
|
||||||
{
|
|
||||||
return IsRunning() == running;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string Timer::Identifier() const
|
std::string Timer::Identifier() const
|
||||||
{
|
{
|
||||||
return m_identifier;
|
return m_identifier;
|
||||||
@@ -63,7 +36,6 @@ void Timer::Stop()
|
|||||||
|
|
||||||
void Timer::Abort()
|
void Timer::Abort()
|
||||||
{
|
{
|
||||||
std::cout << "Timer::Abort()" << std::endl;
|
|
||||||
m_run.store(false, std::memory_order_release);
|
m_run.store(false, std::memory_order_release);
|
||||||
{
|
{
|
||||||
std::unique_lock<std::mutex> lock(m_mutex);
|
std::unique_lock<std::mutex> lock(m_mutex);
|
||||||
|
|||||||
+3
-5
@@ -4,6 +4,7 @@
|
|||||||
#include <atomic>
|
#include <atomic>
|
||||||
#include <condition_variable>
|
#include <condition_variable>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <memory>
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include <thread>
|
#include <thread>
|
||||||
#include "Helpers.h"
|
#include "Helpers.h"
|
||||||
@@ -21,12 +22,7 @@ public:
|
|||||||
Timer(const Timer&) = delete;
|
Timer(const Timer&) = delete;
|
||||||
Timer& operator= (const Timer&) = delete;
|
Timer& operator= (const Timer&) = delete;
|
||||||
|
|
||||||
Timer(Timer&& other);
|
|
||||||
Timer& operator= (Timer&& other);
|
|
||||||
|
|
||||||
bool operator==(const Timer& other) const;
|
bool operator==(const Timer& other) const;
|
||||||
bool operator==(const std::string& identifier) const;
|
|
||||||
bool operator==(bool running) const;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::string Identifier() const;
|
std::string Identifier() const;
|
||||||
@@ -102,6 +98,8 @@ private:
|
|||||||
std::thread m_thread;
|
std::thread m_thread;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef std::unique_ptr<Timer> TimerPointer;
|
||||||
|
|
||||||
} // namespace Util
|
} // namespace Util
|
||||||
} // namespace PresenceDetection
|
} // namespace PresenceDetection
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user