diff options
29 files changed, 66 insertions, 57 deletions
diff --git a/buildscripts/cpplint.py b/buildscripts/cpplint.py index 2eb7de4258c..be4c7d0de68 100755 --- a/buildscripts/cpplint.py +++ b/buildscripts/cpplint.py @@ -1657,6 +1657,13 @@ def CheckForMongoPolyfill(filename, clean_lines, linenum, error): error(filename, linenum, 'mongodb/polyfill', 5, 'Illegal use of banned name from std::/boost::, use mongo::stdx:: variant instead') +def CheckForMongoAtomic(filename, clean_lines, linenum, error): + line = clean_lines.elided[linenum] + if re.search('std::atomic', line): + error(filename, linenum, 'mongodb/stdatomic', 5, + 'Illegal use of prohibited std::atomic<T>, use AtomicWord<T> or other types ' + 'from "mongo/platform/atomic_word.h"') + def CheckForCopyright(filename, lines, error): """Logs an error if no Copyright message appears at the top of the file.""" @@ -5799,6 +5806,7 @@ def ProcessLine(filename, file_extension, clean_lines, line, CheckForNamespaceIndentation(filename, nesting_state, clean_lines, line, error) CheckForMongoPolyfill(filename, clean_lines, line, error) + CheckForMongoAtomic(filename, clean_lines, line, error) if nesting_state.InAsmBlock(): return CheckForFunctionLengths(filename, clean_lines, line, function_state, error) CheckForMultilineCommentsAndStrings(filename, clean_lines, line, error) diff --git a/src/mongo/client/replica_set_monitor.cpp b/src/mongo/client/replica_set_monitor.cpp index c7f5ab413c7..14b8b4089ef 100644 --- a/src/mongo/client/replica_set_monitor.cpp +++ b/src/mongo/client/replica_set_monitor.cpp @@ -252,7 +252,7 @@ struct HostNotIn { } // namespace // At 1 check every 10 seconds, 30 checks takes 5 minutes -std::atomic<int> ReplicaSetMonitor::maxConsecutiveFailedChecks(30); +std::atomic<int> ReplicaSetMonitor::maxConsecutiveFailedChecks(30); // NOLINT // Defaults to random selection as required by the spec bool ReplicaSetMonitor::useDeterministicHostSelection = false; diff --git a/src/mongo/client/replica_set_monitor.h b/src/mongo/client/replica_set_monitor.h index 654fa225078..4258431cb4c 100644 --- a/src/mongo/client/replica_set_monitor.h +++ b/src/mongo/client/replica_set_monitor.h @@ -189,7 +189,7 @@ public: * finding any live nodes claiming to be in the set, the ReplicaSetMonitorWatcher will stop * periodic background refreshes of this set. */ - static std::atomic<int> maxConsecutiveFailedChecks; + static std::atomic<int> maxConsecutiveFailedChecks; // NOLINT // // internal types (defined in replica_set_monitor_internal.h) diff --git a/src/mongo/db/auth/sasl_options.h b/src/mongo/db/auth/sasl_options.h index 55b1f8fa7ab..6139ea10fde 100644 --- a/src/mongo/db/auth/sasl_options.h +++ b/src/mongo/db/auth/sasl_options.h @@ -48,8 +48,8 @@ struct SASLGlobalParams { std::string hostName; std::string serviceName; std::string authdPath; - std::atomic<int> scramIterationCount; - std::atomic<int> authFailedDelay; + std::atomic<int> scramIterationCount; // NOLINT + std::atomic<int> authFailedDelay; // NOLINT SASLGlobalParams(); }; diff --git a/src/mongo/db/auth/user_cache_invalidator_job.cpp b/src/mongo/db/auth/user_cache_invalidator_job.cpp index 51db5119385..a62b69370e2 100644 --- a/src/mongo/db/auth/user_cache_invalidator_job.cpp +++ b/src/mongo/db/auth/user_cache_invalidator_job.cpp @@ -52,7 +52,7 @@ namespace mongo { namespace { // How often to check with the config servers whether authorization information has changed. -std::atomic<int> userCacheInvalidationIntervalSecs(30); // 30 second default +std::atomic<int> userCacheInvalidationIntervalSecs(30); // NOLINT 30 second default stdx::mutex invalidationIntervalMutex; stdx::condition_variable invalidationIntervalChangedCondition; Date_t lastInvalidationTime; diff --git a/src/mongo/db/concurrency/write_conflict_exception.cpp b/src/mongo/db/concurrency/write_conflict_exception.cpp index b4f717ff8a6..b32dfe23084 100644 --- a/src/mongo/db/concurrency/write_conflict_exception.cpp +++ b/src/mongo/db/concurrency/write_conflict_exception.cpp @@ -37,7 +37,7 @@ namespace mongo { -std::atomic<bool> WriteConflictException::trace(false); +std::atomic<bool> WriteConflictException::trace(false); // NOLINT WriteConflictException::WriteConflictException() : DBException("WriteConflict", ErrorCodes::WriteConflict) { diff --git a/src/mongo/db/concurrency/write_conflict_exception.h b/src/mongo/db/concurrency/write_conflict_exception.h index e79e165cf85..1183e93233a 100644 --- a/src/mongo/db/concurrency/write_conflict_exception.h +++ b/src/mongo/db/concurrency/write_conflict_exception.h @@ -79,6 +79,6 @@ public: * If true, will call printStackTrace on every WriteConflictException created. * Can be set via setParameter named traceWriteConflictExceptions. */ - static std::atomic<bool> trace; + static std::atomic<bool> trace; // NOLINT }; } diff --git a/src/mongo/db/ftdc/ftdc_mongod.cpp b/src/mongo/db/ftdc/ftdc_mongod.cpp index dc7bf12f999..e328dbd3dff 100644 --- a/src/mongo/db/ftdc/ftdc_mongod.cpp +++ b/src/mongo/db/ftdc/ftdc_mongod.cpp @@ -61,7 +61,7 @@ FTDCController* getGlobalFTDCController() { return getFTDCController(getGlobalServiceContext()).get(); } -std::atomic<bool> localEnabledFlag(FTDCConfig::kEnabledDefault); +std::atomic<bool> localEnabledFlag(FTDCConfig::kEnabledDefault); // NOLINT class ExportedFTDCEnabledParameter : public ExportedServerParameter<bool, ServerParameterType::kStartupAndRuntime> { @@ -83,7 +83,7 @@ public: } exportedFTDCEnabledParameter; -std::atomic<std::int32_t> localPeriodMillis(FTDCConfig::kPeriodMillisDefault); +std::atomic<std::int32_t> localPeriodMillis(FTDCConfig::kPeriodMillisDefault); // NOLINT class ExportedFTDCPeriodParameter : public ExportedServerParameter<std::int32_t, ServerParameterType::kStartupAndRuntime> { @@ -112,10 +112,11 @@ public: } exportedFTDCPeriodParameter; // Scale the values down since are defaults are in bytes, but the user interface is MB -std::atomic<std::int32_t> localMaxDirectorySizeMB(FTDCConfig::kMaxDirectorySizeBytesDefault / - (1024 * 1024)); +std::atomic<std::int32_t> localMaxDirectorySizeMB( // NOLINT + FTDCConfig::kMaxDirectorySizeBytesDefault / (1024 * 1024)); -std::atomic<std::int32_t> localMaxFileSizeMB(FTDCConfig::kMaxFileSizeBytesDefault / (1024 * 1024)); +std::atomic<std::int32_t> localMaxFileSizeMB(FTDCConfig::kMaxFileSizeBytesDefault / // NOLINT + (1024 * 1024)); class ExportedFTDCDirectorySizeParameter : public ExportedServerParameter<std::int32_t, ServerParameterType::kStartupAndRuntime> { @@ -186,7 +187,7 @@ public: } exportedFTDCFileSizeParameter; -std::atomic<std::int32_t> localMaxSamplesPerArchiveMetricChunk( +std::atomic<std::int32_t> localMaxSamplesPerArchiveMetricChunk( // NOLINT FTDCConfig::kMaxSamplesPerArchiveMetricChunkDefault); class ExportedFTDCArchiveChunkSizeParameter @@ -215,7 +216,7 @@ public: } exportedFTDCArchiveChunkSizeParameter; -std::atomic<std::int32_t> localMaxSamplesPerInterimMetricChunk( +std::atomic<std::int32_t> localMaxSamplesPerInterimMetricChunk( // NOLINT FTDCConfig::kMaxSamplesPerInterimMetricChunkDefault); class ExportedFTDCInterimChunkSizeParameter diff --git a/src/mongo/db/fts/fts_enabled.cpp b/src/mongo/db/fts/fts_enabled.cpp index 61c700f513b..4db31119e8b 100644 --- a/src/mongo/db/fts/fts_enabled.cpp +++ b/src/mongo/db/fts/fts_enabled.cpp @@ -38,7 +38,7 @@ namespace mongo { namespace fts { namespace { -std::atomic<bool> dummyEnabledFlag(true); // Unused, needed for server parameter. +std::atomic<bool> dummyEnabledFlag(true); // Unused, needed for server parameter. NOLINT /** * Declaration for the "textSearchEnabled" server parameter, which is now deprecated. diff --git a/src/mongo/db/query/expression_index_knobs.h b/src/mongo/db/query/expression_index_knobs.h index f75da14fe97..ef3af4f8812 100644 --- a/src/mongo/db/query/expression_index_knobs.h +++ b/src/mongo/db/query/expression_index_knobs.h @@ -39,24 +39,24 @@ namespace mongo { /** * The maximum number of cells to use for 2D geo query covering for predicate queries */ -extern std::atomic<int> internalGeoPredicateQuery2DMaxCoveringCells; +extern std::atomic<int> internalGeoPredicateQuery2DMaxCoveringCells; // NOLINT /** * The maximum number of cells to use for 2D geo query covering for predicate queries */ -extern std::atomic<int> internalGeoNearQuery2DMaxCoveringCells; +extern std::atomic<int> internalGeoNearQuery2DMaxCoveringCells; // NOLINT // // Geo query. // // What is the finest level we will cover a queried region or geoNear annulus? -extern std::atomic<int> internalQueryS2GeoFinestLevel; +extern std::atomic<int> internalQueryS2GeoFinestLevel; // NOLINT // What is the coarsest level we will cover a queried region or geoNear annulus? -extern std::atomic<int> internalQueryS2GeoCoarsestLevel; +extern std::atomic<int> internalQueryS2GeoCoarsestLevel; // NOLINT // What is the maximum cell count that we want? (advisory, not a hard threshold) -extern std::atomic<int> internalQueryS2GeoMaxCells; +extern std::atomic<int> internalQueryS2GeoMaxCells; // NOLINT } // namespace mongo diff --git a/src/mongo/db/query/query_knobs.h b/src/mongo/db/query/query_knobs.h index 6166ced05cf..3c2f5055d3c 100644 --- a/src/mongo/db/query/query_knobs.h +++ b/src/mongo/db/query/query_knobs.h @@ -40,70 +40,70 @@ namespace mongo { // Max number of times we call work() on plans before comparing them, // for small collections. -extern std::atomic<int> internalQueryPlanEvaluationWorks; +extern std::atomic<int> internalQueryPlanEvaluationWorks; // NOLINT // For large collections, the number times we work() candidate plans is // taken as this fraction of the collection size. -extern AtomicDouble internalQueryPlanEvaluationCollFraction; +extern AtomicDouble internalQueryPlanEvaluationCollFraction; // NOLINT // Stop working plans once a plan returns this many results. -extern std::atomic<int> internalQueryPlanEvaluationMaxResults; +extern std::atomic<int> internalQueryPlanEvaluationMaxResults; // NOLINT // Do we give a big ranking bonus to intersection plans? -extern std::atomic<bool> internalQueryForceIntersectionPlans; +extern std::atomic<bool> internalQueryForceIntersectionPlans; // NOLINT // Do we have ixisect on at all? -extern std::atomic<bool> internalQueryPlannerEnableIndexIntersection; +extern std::atomic<bool> internalQueryPlannerEnableIndexIntersection; // NOLINT // Do we use hash-based intersection for rooted $and queries? -extern std::atomic<bool> internalQueryPlannerEnableHashIntersection; +extern std::atomic<bool> internalQueryPlannerEnableHashIntersection; // NOLINT // // plan cache // // How many entries in the cache? -extern std::atomic<int> internalQueryCacheSize; +extern std::atomic<int> internalQueryCacheSize; // NOLINT // How many feedback entries do we collect before possibly evicting from the cache based on bad // performance? -extern std::atomic<int> internalQueryCacheFeedbacksStored; +extern std::atomic<int> internalQueryCacheFeedbacksStored; // NOLINT // How many times more works must we perform in order to justify plan cache eviction // and replanning? -extern AtomicDouble internalQueryCacheEvictionRatio; +extern AtomicDouble internalQueryCacheEvictionRatio; // NOLINT // // Planning and enumeration. // // How many indexed solutions will QueryPlanner::plan output? -extern std::atomic<int> internalQueryPlannerMaxIndexedSolutions; +extern std::atomic<int> internalQueryPlannerMaxIndexedSolutions; // NOLINT // How many solutions will the enumerator consider at each OR? -extern std::atomic<int> internalQueryEnumerationMaxOrSolutions; +extern std::atomic<int> internalQueryEnumerationMaxOrSolutions; // NOLINT // How many intersections will the enumerator consider at each AND? -extern std::atomic<int> internalQueryEnumerationMaxIntersectPerAnd; +extern std::atomic<int> internalQueryEnumerationMaxIntersectPerAnd; // NOLINT // Do we want to plan each child of the OR independently? -extern std::atomic<bool> internalQueryPlanOrChildrenIndependently; +extern std::atomic<bool> internalQueryPlanOrChildrenIndependently; // NOLINT // How many index scans are we willing to produce in order to obtain a sort order // during explodeForSort? -extern std::atomic<int> internalQueryMaxScansToExplode; +extern std::atomic<int> internalQueryMaxScansToExplode; // NOLINT // // Query execution. // -extern std::atomic<int> internalQueryExecMaxBlockingSortBytes; +extern std::atomic<int> internalQueryExecMaxBlockingSortBytes; // NOLINT // Yield after this many "should yield?" checks. -extern std::atomic<int> internalQueryExecYieldIterations; +extern std::atomic<int> internalQueryExecYieldIterations; // NOLINT // Yield if it's been at least this many milliseconds since we last yielded. -extern std::atomic<int> internalQueryExecYieldPeriodMS; +extern std::atomic<int> internalQueryExecYieldPeriodMS; // NOLINT // Limit the size that we write without yielding to 16MB / 64 (max expected number of indexes) const int64_t insertVectorMaxBytes = 256 * 1024; diff --git a/src/mongo/db/repl/master_slave.cpp b/src/mongo/db/repl/master_slave.cpp index 82b349108f5..0b662ce66dd 100644 --- a/src/mongo/db/repl/master_slave.cpp +++ b/src/mongo/db/repl/master_slave.cpp @@ -810,7 +810,7 @@ void ReplSource::syncToTailOfRemoteLog() { } } -std::atomic<int> replApplyBatchSize(1); +std::atomic<int> replApplyBatchSize(1); // NOLINT class ReplApplyBatchSize : public ExportedServerParameter<int, ServerParameterType::kStartupAndRuntime> { diff --git a/src/mongo/db/server_options.h b/src/mongo/db/server_options.h index ac1c1364b7f..9986561aea4 100644 --- a/src/mongo/db/server_options.h +++ b/src/mongo/db/server_options.h @@ -78,7 +78,7 @@ struct ServerGlobalParams { bool indexBuildRetry; // --noIndexBuildRetry - std::atomic<bool> quiet; // --quiet + std::atomic<bool> quiet; // --quiet NOLINT bool configsvr; // --configsvr CatalogManager::ConfigServerMode configsvrMode; // -- configsvrMode diff --git a/src/mongo/db/server_parameters.h b/src/mongo/db/server_parameters.h index 1c87613e110..9415d3470ab 100644 --- a/src/mongo/db/server_parameters.h +++ b/src/mongo/db/server_parameters.h @@ -161,7 +161,7 @@ class is_safe_runtime_parameter_type<double> : public std::true_type {}; template <typename T, ServerParameterType paramType> class server_parameter_storage_type { public: - using value_type = std::atomic<T>; + using value_type = std::atomic<T>; // NOLINT }; template <typename T> diff --git a/src/mongo/db/server_parameters_test.cpp b/src/mongo/db/server_parameters_test.cpp index 7cfd012879c..379a9947154 100644 --- a/src/mongo/db/server_parameters_test.cpp +++ b/src/mongo/db/server_parameters_test.cpp @@ -39,7 +39,7 @@ using std::string; using std::vector; TEST(ServerParameters, Simple1) { - std::atomic<int> f(5); + std::atomic<int> f(5); // NOLINT ExportedServerParameter<int, ServerParameterType::kStartupAndRuntime> ff(NULL, "ff", &f); ASSERT_EQUALS("ff", ff.name()); diff --git a/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.cpp b/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.cpp index 9771fcb4ccc..ad63d494d0f 100644 --- a/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.cpp +++ b/src/mongo/db/storage/mmap_v1/mmap_v1_database_catalog_entry.cpp @@ -69,7 +69,7 @@ namespace { * - setting to false will fail. */ // Unused, needed for server parameter. -std::atomic<bool> newCollectionsUsePowerOf2SizesFlag(true); +std::atomic<bool> newCollectionsUsePowerOf2SizesFlag(true); // NOLINT class NewCollectionsUsePowerOf2SizesParameter : public ExportedServerParameter<bool, ServerParameterType::kStartupAndRuntime> { diff --git a/src/mongo/db/storage/storage_options.h b/src/mongo/db/storage/storage_options.h index 1b6069242cd..447fc83a6cb 100644 --- a/src/mongo/db/storage/storage_options.h +++ b/src/mongo/db/storage/storage_options.h @@ -94,11 +94,11 @@ struct StorageGlobalParams { // --journalCommitInterval static const int kMaxJournalCommitIntervalMs; - std::atomic<int> journalCommitIntervalMs; + std::atomic<int> journalCommitIntervalMs; // NOLINT // --notablescan // no table scans allowed - std::atomic<bool> noTableScan; + std::atomic<bool> noTableScan; // NOLINT // --directoryperdb // Stores each database’s files in its own folder in the data directory. diff --git a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp index 70df3e595be..f23ae839bbd 100644 --- a/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp +++ b/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp @@ -104,7 +104,7 @@ public: private: WiredTigerSessionCache* _sessionCache; - std::atomic<bool> _shuttingDown{false}; + std::atomic<bool> _shuttingDown{false}; // NOLINT }; WiredTigerKVEngine::WiredTigerKVEngine(const std::string& path, diff --git a/src/mongo/dbtests/plan_ranking.cpp b/src/mongo/dbtests/plan_ranking.cpp index 16668a116c9..6c853e409e3 100644 --- a/src/mongo/dbtests/plan_ranking.cpp +++ b/src/mongo/dbtests/plan_ranking.cpp @@ -52,9 +52,9 @@ namespace mongo { // How we access the external setParameter testing bool. -extern std::atomic<bool> internalQueryForceIntersectionPlans; +extern std::atomic<bool> internalQueryForceIntersectionPlans; // NOLINT -extern std::atomic<bool> internalQueryPlannerEnableHashIntersection; +extern std::atomic<bool> internalQueryPlannerEnableHashIntersection; // NOLINT } // namespace mongo diff --git a/src/mongo/dbtests/query_stage_multiplan.cpp b/src/mongo/dbtests/query_stage_multiplan.cpp index d772c80ce5f..cda5de388cf 100644 --- a/src/mongo/dbtests/query_stage_multiplan.cpp +++ b/src/mongo/dbtests/query_stage_multiplan.cpp @@ -51,7 +51,7 @@ namespace mongo { // How we access the external setParameter testing bool. -extern std::atomic<bool> internalQueryForceIntersectionPlans; +extern std::atomic<bool> internalQueryForceIntersectionPlans; // NOLINT } // namespace mongo diff --git a/src/mongo/executor/network_interface_asio.h b/src/mongo/executor/network_interface_asio.h index 91fc0858824..74309aaf465 100644 --- a/src/mongo/executor/network_interface_asio.h +++ b/src/mongo/executor/network_interface_asio.h @@ -379,7 +379,7 @@ private: asio::ip::tcp::resolver _resolver; - std::atomic<State> _state; + std::atomic<State> _state; // NOLINT std::unique_ptr<AsyncTimerFactoryInterface> _timerFactory; diff --git a/src/mongo/executor/network_interface_perf_test.cpp b/src/mongo/executor/network_interface_perf_test.cpp index 0c79cdb727a..99f91cec0d2 100644 --- a/src/mongo/executor/network_interface_perf_test.cpp +++ b/src/mongo/executor/network_interface_perf_test.cpp @@ -65,7 +65,7 @@ int timeNetworkTestMillis(std::size_t operations, NetworkInterface* net) { auto fixture = unittest::getFixtureConnectionString(); auto server = fixture.getServers()[0]; - std::atomic<int> remainingOps(operations); + std::atomic<int> remainingOps(operations); // NOLINT stdx::mutex mtx; stdx::condition_variable cv; Timer t; diff --git a/src/mongo/platform/atomic_proxy.h b/src/mongo/platform/atomic_proxy.h index 86ad898199d..ae7960cb930 100644 --- a/src/mongo/platform/atomic_proxy.h +++ b/src/mongo/platform/atomic_proxy.h @@ -79,7 +79,7 @@ public: } private: - std::atomic<BaseWordT> _value; + std::atomic<BaseWordT> _value; // NOLINT }; using AtomicDouble = AtomicProxy<double, std::uint64_t>; diff --git a/src/mongo/platform/atomic_word.h b/src/mongo/platform/atomic_word.h index 86a5b5ea323..c3452d827dc 100644 --- a/src/mongo/platform/atomic_word.h +++ b/src/mongo/platform/atomic_word.h @@ -146,7 +146,7 @@ public: } private: - std::atomic<WordType> _value; + std::atomic<WordType> _value; // NOLINT }; #define _ATOMIC_WORD_DECLARE(NAME, WTYPE) \ diff --git a/src/mongo/s/query/cluster_cursor_cleanup_job.cpp b/src/mongo/s/query/cluster_cursor_cleanup_job.cpp index cf4bd4b943b..14132876df6 100644 --- a/src/mongo/s/query/cluster_cursor_cleanup_job.cpp +++ b/src/mongo/s/query/cluster_cursor_cleanup_job.cpp @@ -39,7 +39,7 @@ namespace mongo { -std::atomic<long long> ClusterCursorCleanupJob::cursorTimeoutMillis( +std::atomic<long long> ClusterCursorCleanupJob::cursorTimeoutMillis( // NOLINT durationCount<stdx::chrono::milliseconds>(stdx::chrono::minutes(10))); ExportedServerParameter<long long, ServerParameterType::kStartupAndRuntime> diff --git a/src/mongo/s/query/cluster_cursor_cleanup_job.h b/src/mongo/s/query/cluster_cursor_cleanup_job.h index 4e45d889d30..c623f4a6c0b 100644 --- a/src/mongo/s/query/cluster_cursor_cleanup_job.h +++ b/src/mongo/s/query/cluster_cursor_cleanup_job.h @@ -51,7 +51,7 @@ public: * TODO: Move declaration to cpp file once CursorCache class is deleted. See SERVER-20758 for * more details. */ - static std::atomic<long long> cursorTimeoutMillis; + static std::atomic<long long> cursorTimeoutMillis; // NOLINT std::string name() const final; void run() final; diff --git a/src/mongo/s/strategy.h b/src/mongo/s/strategy.h index 873aaf5f44c..1f1070f563a 100644 --- a/src/mongo/s/strategy.h +++ b/src/mongo/s/strategy.h @@ -45,7 +45,7 @@ class ServerSelectionMetadata; } // namespace rpc // A spigot to enable the ClusterClientCursor codepath. -extern std::atomic<bool> useClusterClientCursor; +extern std::atomic<bool> useClusterClientCursor; // NOLINT /** * Legacy interface for processing client read/write/cmd requests. diff --git a/src/mongo/util/assert_util.cpp b/src/mongo/util/assert_util.cpp index ceb3007ae38..764afacb140 100644 --- a/src/mongo/util/assert_util.cpp +++ b/src/mongo/util/assert_util.cpp @@ -74,7 +74,7 @@ void AssertionCount::condrollover(int newvalue) { rollover(); } -std::atomic<bool> DBException::traceExceptions(false); +std::atomic<bool> DBException::traceExceptions(false); // NOLINT string DBException::toString() const { stringstream ss; diff --git a/src/mongo/util/assert_util.h b/src/mongo/util/assert_util.h index c32e770b0e4..3334a62182f 100644 --- a/src/mongo/util/assert_util.h +++ b/src/mongo/util/assert_util.h @@ -130,7 +130,7 @@ private: static void traceIfNeeded(const DBException& e); public: - static std::atomic<bool> traceExceptions; + static std::atomic<bool> traceExceptions; // NOLINT protected: ExceptionInfo _ei; |