From d489bcc2cba7c454874ae09e2e1df5d9dc6958aa Mon Sep 17 00:00:00 2001 From: Nicolas Noble Date: Wed, 18 Dec 2013 18:10:39 -0800 Subject: Removing Atomic.h and all volatiles. --- includes/Async.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'includes/Async.h') diff --git a/includes/Async.h b/includes/Async.h index 6c67546..70cec65 100644 --- a/includes/Async.h +++ b/includes/Async.h @@ -1,6 +1,6 @@ #pragma once -#include +#include #include #include #include @@ -37,7 +37,7 @@ class AsyncOperation { class AsyncFinishWorker : public Thread { public: - AsyncFinishWorker(AsyncManager * async, Queue * queue) : m_async(async), m_queue(queue) { } + AsyncFinishWorker(AsyncManager * async, Queue * queue) : m_async(async), m_queue(queue), m_stopped(false) { } bool stopped() { return m_stopped; } private: AsyncFinishWorker(const AsyncFinishWorker &) = delete; @@ -46,12 +46,12 @@ class AsyncFinishWorker : public Thread { AsyncManager * m_async; Queue * m_queue; bool m_stopping = false; - volatile bool m_stopped = false; + std::atomic m_stopped; }; class AsyncManager : public Thread { public: - AsyncManager() { } + AsyncManager() : m_numTLSes(0), m_ready(false), m_stopperPushed(false) { } void setFinishers(int minIdle, int maxIdle) { AAssert(minIdle < maxIdle, "Minimum number of threads needs to be less than maximum number of threads."); m_minIdle = minIdle; @@ -85,14 +85,14 @@ class AsyncManager : public Thread { tls = new TLS(); m_tlsManager.setTLS(tls); m_TLSes.push(tls); - Atomic::Increment(&m_numTLSes); + ++m_numTLSes; } return tls; } Queue m_queue; Queue m_finished; Queue m_TLSes; - volatile int m_numTLSes = 0; + std::atomic m_numTLSes; PThreadsTLSManager m_tlsManager; std::list m_workers; int m_numFinishers = 0; @@ -100,11 +100,11 @@ class AsyncManager : public Thread { int m_minIdle = 1; int m_maxIdle = 4; bool m_stopping = false; - volatile bool m_ready = false; - volatile bool m_stopperPushed = false; + std::atomic m_ready; + std::atomic m_stopperPushed; - void incIdle() { Atomic::Increment(&m_numFinishersIdle); } - void decIdle() { Atomic::Decrement(&m_numFinishersIdle); } + void incIdle() { m_numFinishersIdle++; } + void decIdle() { m_numFinishersIdle--; } friend class AsyncFinishWorker; }; -- cgit v1.2.3