diff options
Diffstat (limited to 'src/mongo/db/service_context_d.cpp')
-rw-r--r-- | src/mongo/db/service_context_d.cpp | 15 |
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) { |