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