]> git.tdb.fi Git - libs/core.git/blobdiff - source/core/mutex.h
Add move semantics to Variant
[libs/core.git] / source / core / mutex.h
index 0fe9e82087ff67d4c51d1d7bcde0f2a10d668138..a48f58c89d3de88831047dd27c51aa13dec7c91a 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef MSP_CORE_MUTEX_H_
 #define MSP_CORE_MUTEX_H_
 
+#include "mspcore_api.h"
+#include "noncopyable.h"
 #include "refptr.h"
 
 namespace Msp {
@@ -9,14 +11,14 @@ namespace Msp {
 A class for controlling mutually exclusive access to a resource.  Only one
 thread can hold a lock on the mutex at a time.
 */
-class Mutex
+class MSPCORE_API Mutex: private NonCopyable
 {
        friend class Semaphore;
 
 private:
        struct Private;
 
-       Private *priv;
+       Private *priv = nullptr;
 
 public:
        Mutex();
@@ -37,7 +39,7 @@ public:
 /**
 Locks the mutex for the lifetime of the object.
 */
-class MutexLock
+class MSPCORE_API MutexLock
 {
 private:
        Mutex &mutex;
@@ -66,7 +68,7 @@ public:
 
        T &operator*() const { return *data; }
        T *operator->() const { return data; }
-       void clear() { mutex = 0; data = 0; }
+       void clear() { mutex = nullptr; data = nullptr; }
 };
 
 }