summaryrefslogtreecommitdiff
path: root/src/mongo/db/service_context.cpp
diff options
context:
space:
mode:
authorJonathan Ma <jonathan.ma@mongodb.com>2019-01-23 09:50:36 -0500
committerJonathan Ma <jonathan.ma@mongodb.com>2019-01-24 13:49:22 -0500
commitaec398437d55ae1d88efd2439118dc8b978154e2 (patch)
tree48dcf8dc6a0d5a12fc656c95730c59d32da54d88 /src/mongo/db/service_context.cpp
parenta8b513ff6e2e3db87179fcb2f99499f19d47e8dc (diff)
downloadmongo-aec398437d55ae1d88efd2439118dc8b978154e2.tar.gz
SERVER-36663 Prevent killOperation from running without lock
Diffstat (limited to 'src/mongo/db/service_context.cpp')
-rw-r--r--src/mongo/db/service_context.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mongo/db/service_context.cpp b/src/mongo/db/service_context.cpp
index 47415f498d7..8ffa987a49d 100644
--- a/src/mongo/db/service_context.cpp
+++ b/src/mongo/db/service_context.cpp
@@ -287,7 +287,7 @@ void ServiceContext::setKillAllOperations() {
stdx::lock_guard<Client> lk(*client);
auto opCtxToKill = client->getOperationContext();
if (opCtxToKill) {
- killOperation(opCtxToKill, ErrorCodes::InterruptedAtShutdown);
+ killOperation(lk, opCtxToKill, ErrorCodes::InterruptedAtShutdown);
}
}
@@ -301,7 +301,7 @@ void ServiceContext::setKillAllOperations() {
}
}
-void ServiceContext::killOperation(OperationContext* opCtx, ErrorCodes::Error killCode) {
+void ServiceContext::killOperation(WithLock, OperationContext* opCtx, ErrorCodes::Error killCode) {
opCtx->markKilled(killCode);
for (const auto listener : _killOpListeners) {