summaryrefslogtreecommitdiff
path: root/src/mongo/db/service_context_d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/service_context_d.cpp')
-rw-r--r--src/mongo/db/service_context_d.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/mongo/db/service_context_d.cpp b/src/mongo/db/service_context_d.cpp
index eb00449c625..a9b22a986fb 100644
--- a/src/mongo/db/service_context_d.cpp
+++ b/src/mongo/db/service_context_d.cpp
@@ -227,14 +227,11 @@ namespace mongo {
if (!opCtx) {
return false;
}
- for( CurOp *k = CurOp::get(opCtx); k; k = k->parent() ) {
- if ( k->opNum() != opId )
- continue;
-
- _killOperation_inlock(opCtx);
- return true;
+ if (opCtx->getOpID() != opId) {
+ return false;
}
- return false;
+ _killOperation_inlock(opCtx);
+ return true;
}
void ServiceContextMongoD::_killOperation_inlock(OperationContext* opCtx) {
@@ -295,8 +292,8 @@ namespace mongo {
_killOpListeners.push_back(listener);
}
- OperationContext* ServiceContextMongoD::newOpCtx() {
- return new OperationContextImpl();
+ std::unique_ptr<OperationContext> ServiceContextMongoD::newOpCtx() {
+ return stdx::make_unique<OperationContextImpl>();
}
void ServiceContextMongoD::setOpObserver(std::unique_ptr<OpObserver> opObserver) {