summaryrefslogtreecommitdiff
path: root/src/mongo/db/concurrency/write_conflict_exception.cpp
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2015-09-15 11:15:02 -0400
committerMark Benvenuto <mark.benvenuto@mongodb.com>2015-09-22 10:51:18 -0400
commit1f6d501989875dac4bcd7cffbbabf320c3cab289 (patch)
tree9d029f2d6a03006cb546c5abb8e20f10b0c92ee4 /src/mongo/db/concurrency/write_conflict_exception.cpp
parent230005e3ac47b6278e22144af8d9ce417e3e1aa2 (diff)
downloadmongo-1f6d501989875dac4bcd7cffbbabf320c3cab289.tar.gz
SERVER-20096: ExportedServerParameter<T> is not thread-safe for parameters changeable at runtime.
Diffstat (limited to 'src/mongo/db/concurrency/write_conflict_exception.cpp')
-rw-r--r--src/mongo/db/concurrency/write_conflict_exception.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/mongo/db/concurrency/write_conflict_exception.cpp b/src/mongo/db/concurrency/write_conflict_exception.cpp
index a0547976100..b4f717ff8a6 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 {
-bool WriteConflictException::trace = false;
+std::atomic<bool> WriteConflictException::trace(false);
WriteConflictException::WriteConflictException()
: DBException("WriteConflict", ErrorCodes::WriteConflict) {
@@ -64,10 +64,9 @@ void WriteConflictException::logAndBackoff(int attempt, StringData operation, St
namespace {
// for WriteConflictException
-ExportedServerParameter<bool> TraceWCExceptionsSetting(ServerParameterSet::getGlobal(),
- "traceWriteConflictExceptions",
- &WriteConflictException::trace,
- true, // allowedToChangeAtStartup
- true); // allowedToChangeAtRuntime
+ExportedServerParameter<bool, ServerParameterType::kStartupAndRuntime> TraceWCExceptionsSetting(
+ ServerParameterSet::getGlobal(),
+ "traceWriteConflictExceptions",
+ &WriteConflictException::trace);
}
}