diff options
Diffstat (limited to 'src/mongo/s/catalog')
9 files changed, 29 insertions, 25 deletions
diff --git a/src/mongo/s/catalog/catalog_cache.h b/src/mongo/s/catalog/catalog_cache.h index a138c793c64..2547da29960 100644 --- a/src/mongo/s/catalog/catalog_cache.h +++ b/src/mongo/s/catalog/catalog_cache.h @@ -29,6 +29,7 @@ #pragma once #include <map> +#include <memory> #include <string> #include "mongo/base/disallow_copying.h" diff --git a/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp b/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp index c95c57c9269..a2f17bdfc60 100644 --- a/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp +++ b/src/mongo/s/catalog/dist_lock_catalog_impl_test.cpp @@ -46,6 +46,7 @@ #include "mongo/s/client/shard_registry.h" #include "mongo/s/type_lockpings.h" #include "mongo/s/type_locks.h" +#include "mongo/stdx/future.h" #include "mongo/stdx/memory.h" #include "mongo/stdx/thread.h" #include "mongo/unittest/unittest.h" diff --git a/src/mongo/s/catalog/legacy/catalog_manager_legacy.cpp b/src/mongo/s/catalog/legacy/catalog_manager_legacy.cpp index 7711be835a4..0db9a2ea5d4 100644 --- a/src/mongo/s/catalog/legacy/catalog_manager_legacy.cpp +++ b/src/mongo/s/catalog/legacy/catalog_manager_legacy.cpp @@ -417,7 +417,10 @@ void CatalogManagerLegacy::shutDown() { _inShutdown = true; _consistencyCheckerCV.notify_one(); } - _consistencyCheckerThread.join(); + + // Only try to join the thread if we actually started it. + if (_consistencyCheckerThread.joinable()) + _consistencyCheckerThread.join(); invariant(_distLockManager); _distLockManager->shutDown(); diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set.cpp index 795b822e0a2..ab825acd12c 100644 --- a/src/mongo/s/catalog/replset/catalog_manager_replica_set.cpp +++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set.cpp @@ -123,7 +123,7 @@ ConnectionString CatalogManagerReplicaSet::connectionString() const { void CatalogManagerReplicaSet::shutDown() { LOG(1) << "CatalogManagerReplicaSet::shutDown() called."; { - std::lock_guard<std::mutex> lk(_mutex); + stdx::lock_guard<stdx::mutex> lk(_mutex); _inShutdown = true; } diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set.h b/src/mongo/s/catalog/replset/catalog_manager_replica_set.h index b66432fdd0f..6409fe2f619 100644 --- a/src/mongo/s/catalog/replset/catalog_manager_replica_set.h +++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set.h @@ -29,7 +29,6 @@ #pragma once #include <memory> -#include <mutex> #include <string> #include <vector> @@ -37,6 +36,7 @@ #include "mongo/client/connection_string.h" #include "mongo/platform/atomic_word.h" #include "mongo/s/catalog/catalog_manager.h" +#include "mongo/stdx/mutex.h" namespace mongo { @@ -162,7 +162,7 @@ private: AtomicInt32 _changeLogCollectionCreated; // protects _inShutdown - std::mutex _mutex; + stdx::mutex _mutex; // True if shutDown() has been called. False, otherwise. bool _inShutdown = false; diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_log_action_test.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_log_action_test.cpp index 9d3d5d688f4..727e942bfa0 100644 --- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_log_action_test.cpp +++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_log_action_test.cpp @@ -30,8 +30,6 @@ #include "mongo/platform/basic.h" -#include <chrono> - #include "mongo/client/remote_command_targeter_mock.h" #include "mongo/db/commands.h" #include "mongo/executor/network_interface_mock.h" @@ -42,6 +40,8 @@ #include "mongo/s/client/shard_registry.h" #include "mongo/s/write_ops/batched_command_request.h" #include "mongo/s/write_ops/batched_command_response.h" +#include "mongo/stdx/chrono.h" +#include "mongo/stdx/future.h" #include "mongo/util/log.h" namespace mongo { @@ -51,7 +51,7 @@ using executor::NetworkInterfaceMock; using executor::TaskExecutor; using unittest::assertGet; -static const std::chrono::seconds kFutureTimeout{5}; +static const stdx::chrono::seconds kFutureTimeout{5}; class LogActionTest : public CatalogManagerReplSetTestFixture { public: diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_log_change_test.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_log_change_test.cpp index 22a83224f28..86d175b63e1 100644 --- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_log_change_test.cpp +++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_log_change_test.cpp @@ -30,8 +30,6 @@ #include "mongo/platform/basic.h" -#include <chrono> -#include <future> #include <vector> #include "mongo/client/remote_command_targeter_mock.h" @@ -44,6 +42,8 @@ #include "mongo/s/client/shard_registry.h" #include "mongo/s/write_ops/batched_command_request.h" #include "mongo/s/write_ops/batched_command_response.h" +#include "mongo/stdx/chrono.h" +#include "mongo/stdx/future.h" #include "mongo/util/log.h" #include "mongo/util/mongoutils/str.h" #include "mongo/util/text.h" @@ -53,10 +53,10 @@ namespace { using executor::NetworkInterfaceMock; using executor::TaskExecutor; -using std::async; +using stdx::async; using unittest::assertGet; -static const std::chrono::seconds kFutureTimeout{5}; +static const stdx::chrono::seconds kFutureTimeout{5}; class LogChangeTest : public CatalogManagerReplSetTestFixture { public: @@ -129,7 +129,7 @@ TEST_F(LogChangeTest, LogChangeNoRetryAfterSuccessfulCreate) { expectedChangeLog.setWhat("moved a chunk"); expectedChangeLog.setDetails(BSON("min" << 3 << "max" << 4)); - auto future = async(std::launch::async, + auto future = async(stdx::launch::async, [this, &expectedChangeLog] { catalogManager()->logChange(expectedChangeLog.getClientAddr(), expectedChangeLog.getWhat(), @@ -144,7 +144,7 @@ TEST_F(LogChangeTest, LogChangeNoRetryAfterSuccessfulCreate) { future.wait_for(kFutureTimeout); // Now log another change and confirm that we don't re-attempt to create the collection - future = async(std::launch::async, + future = async(stdx::launch::async, [this, &expectedChangeLog] { catalogManager()->logChange(expectedChangeLog.getClientAddr(), expectedChangeLog.getWhat(), @@ -171,7 +171,7 @@ TEST_F(LogChangeTest, LogActionNoRetryCreateIfAlreadyExists) { expectedChangeLog.setWhat("moved a chunk"); expectedChangeLog.setDetails(BSON("min" << 3 << "max" << 4)); - auto future = async(std::launch::async, + auto future = async(stdx::launch::async, [this, &expectedChangeLog] { catalogManager()->logChange(expectedChangeLog.getClientAddr(), expectedChangeLog.getWhat(), @@ -189,7 +189,7 @@ TEST_F(LogChangeTest, LogActionNoRetryCreateIfAlreadyExists) { future.wait_for(kFutureTimeout); // Now log another change and confirm that we don't re-attempt to create the collection - future = async(std::launch::async, + future = async(stdx::launch::async, [this, &expectedChangeLog] { catalogManager()->logChange(expectedChangeLog.getClientAddr(), expectedChangeLog.getWhat(), @@ -216,7 +216,7 @@ TEST_F(LogChangeTest, LogActionCreateFailure) { expectedChangeLog.setWhat("moved a chunk"); expectedChangeLog.setDetails(BSON("min" << 3 << "max" << 4)); - auto future = async(std::launch::async, + auto future = async(stdx::launch::async, [this, &expectedChangeLog] { catalogManager()->logChange(expectedChangeLog.getClientAddr(), expectedChangeLog.getWhat(), @@ -233,7 +233,7 @@ TEST_F(LogChangeTest, LogActionCreateFailure) { future.wait_for(kFutureTimeout); // Now log another change and confirm that we *do* attempt to create the collection - future = async(std::launch::async, + future = async(stdx::launch::async, [this, &expectedChangeLog] { catalogManager()->logChange(expectedChangeLog.getClientAddr(), expectedChangeLog.getWhat(), diff --git a/src/mongo/s/catalog/replset/catalog_manager_replica_set_test.cpp b/src/mongo/s/catalog/replset/catalog_manager_replica_set_test.cpp index 07da0c6d6a0..36b7a3b85bd 100644 --- a/src/mongo/s/catalog/replset/catalog_manager_replica_set_test.cpp +++ b/src/mongo/s/catalog/replset/catalog_manager_replica_set_test.cpp @@ -30,8 +30,6 @@ #include "mongo/platform/basic.h" -#include <chrono> - #include "mongo/client/remote_command_targeter_mock.h" #include "mongo/db/commands.h" #include "mongo/db/query/lite_parsed_query.h" @@ -52,6 +50,8 @@ #include "mongo/s/write_ops/batched_command_response.h" #include "mongo/s/write_ops/batched_insert_request.h" #include "mongo/s/write_ops/batched_update_request.h" +#include "mongo/stdx/chrono.h" +#include "mongo/stdx/future.h" #include "mongo/util/log.h" namespace mongo { @@ -64,7 +64,7 @@ using std::vector; using stdx::chrono::milliseconds; using unittest::assertGet; -static const std::chrono::seconds kFutureTimeout{5}; +static const stdx::chrono::seconds kFutureTimeout{5}; TEST_F(CatalogManagerReplSetTestFixture, GetCollectionExisting) { RemoteCommandTargeterMock* targeter = @@ -1388,7 +1388,7 @@ TEST_F(CatalogManagerReplSetTestFixture, ApplyChunkOpsDeprecated) { << BSON("precondition2" << "second precondition")); - auto future = async(std::launch::async, + auto future = async(stdx::launch::async, [this, updateOps, preCondition] { auto status = catalogManager()->applyChunkOpsDeprecated(updateOps, preCondition); @@ -1421,7 +1421,7 @@ TEST_F(CatalogManagerReplSetTestFixture, ApplyChunkOpsDeprecatedCommandFailed) { << BSON("precondition2" << "second precondition")); - auto future = async(std::launch::async, + auto future = async(stdx::launch::async, [this, updateOps, preCondition] { auto status = catalogManager()->applyChunkOpsDeprecated(updateOps, preCondition); diff --git a/src/mongo/s/catalog/replset/replset_dist_lock_manager.cpp b/src/mongo/s/catalog/replset/replset_dist_lock_manager.cpp index d057402115c..90f8288c3db 100644 --- a/src/mongo/s/catalog/replset/replset_dist_lock_manager.cpp +++ b/src/mongo/s/catalog/replset/replset_dist_lock_manager.cpp @@ -30,8 +30,6 @@ #include "mongo/platform/basic.h" -#include <chrono> - #include "mongo/s/catalog/replset/replset_dist_lock_manager.h" #include "mongo/base/status.h" @@ -40,6 +38,7 @@ #include "mongo/s/catalog/dist_lock_catalog.h" #include "mongo/s/type_lockpings.h" #include "mongo/s/type_locks.h" +#include "mongo/stdx/chrono.h" #include "mongo/stdx/memory.h" #include "mongo/util/concurrency/thread_name.h" #include "mongo/util/log.h" @@ -51,7 +50,7 @@ namespace mongo { using std::string; using std::unique_ptr; using stdx::chrono::milliseconds; -using std::chrono::duration_cast; +using stdx::chrono::duration_cast; ReplSetDistLockManager::ReplSetDistLockManager(ServiceContext* globalContext, StringData processID, |