X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fcore%2Fthread.h;h=ef071cd43ffb070f8c2ea2646a514ac2f514f9a6;hp=7cf17b8d327ed3e84075bb4c247f4c5d16c4ff6f;hb=41363aed34382386f915f17c1a961750b4fdcb14;hpb=1a563cfd722a5571428562259790b4948980dd4f diff --git a/source/core/thread.h b/source/core/thread.h index 7cf17b8..ef071cd 100644 --- a/source/core/thread.h +++ b/source/core/thread.h @@ -2,6 +2,7 @@ #define MSP_CORE_THREAD_H_ #include +#include "noncopyable.h" namespace Msp { @@ -12,7 +13,7 @@ automatically started upon creation - you must manually call launch() instead. This is to allow initializing variables of the derived class before the thread is started. */ -class Thread +class Thread: private NonCopyable { private: struct Private; @@ -26,22 +27,19 @@ private: JOINED }; - Private *priv_; - std::string name_; - State state_; + Private *_priv = nullptr; + std::string _name; + State _state = PENDING; protected: Thread(const std::string & = std::string()); -private: - Thread(const Thread &); - Thread &operator=(const Thread &); public: virtual ~Thread(); - const std::string &get_name() const { return name_; } + const std::string &get_name() const { return _name; } /** Indicates whether the thread has finished running. */ - bool is_finished() { return state_>=FINISHED; } + bool is_finished() { return _state>=FINISHED; } /** Waits for the thread to exit. Calling this from the thread will cause a deadlock. */