summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSara Golemon <sara.golemon@mongodb.com>2019-01-15 17:41:02 +0000
committerSara Golemon <sara.golemon@mongodb.com>2019-01-15 20:07:38 +0000
commit27cbd015c82dbd4e961382aee2499ec449db081f (patch)
treea788d1a91cf7cbd596085e822cc174564742bcae
parenta0c5635a5ee27ac30af2e6d3d01c663589f28824 (diff)
downloadmongo-27cbd015c82dbd4e961382aee2499ec449db081f.tar.gz
SERVER-39010 Provide move constructors for update_guard
-rw-r--r--src/mongo/util/synchronized_value.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/mongo/util/synchronized_value.h b/src/mongo/util/synchronized_value.h
index 9d3fbe5b9c6..8b067d52fdf 100644
--- a/src/mongo/util/synchronized_value.h
+++ b/src/mongo/util/synchronized_value.h
@@ -51,12 +51,12 @@ public:
~update_guard() = default;
// Only move construction is permitted so that synchronized_value may return update_guard
- update_guard(update_guard&&);
+ update_guard(update_guard&&) = default;
+ update_guard& operator=(update_guard&&) = default;
- // Disallow any copy or move
+ // Disallow any copy
update_guard(update_guard const&) = delete;
update_guard& operator=(update_guard const&) = delete;
- update_guard&& operator=(update_guard&&) = delete;
T& operator*() noexcept {
return _value;
@@ -82,7 +82,7 @@ public:
private:
// Held lock from synchronized_value
- stdx::lock_guard<stdx::mutex> _lock;
+ stdx::unique_lock<stdx::mutex> _lock;
// Reference to the value from synchronized_value
T& _value;
@@ -101,12 +101,12 @@ public:
~const_update_guard() = default;
// Only move construction is permitted so that synchronized_value may return const_update_guard
- const_update_guard(const_update_guard&&);
+ const_update_guard(const_update_guard&&) = default;
+ const_update_guard& operator=(const_update_guard&&) = default;
- // Disallow any copy or move
+ // Disallow any copy
const_update_guard(const_update_guard const&) = delete;
const_update_guard& operator=(const_update_guard const&) = delete;
- const_update_guard&& operator=(const_update_guard&&) = delete;
T& operator*() const noexcept {
return _value;
@@ -122,7 +122,7 @@ public:
private:
// Held lock from synchronized_value
- stdx::lock_guard<stdx::mutex> _lock;
+ stdx::unique_lock<stdx::mutex> _lock;
// Reference to the value from synchronized_value
const T& _value;