diff options
author | Spencer T Brody <spencer@mongodb.com> | 2015-05-29 18:13:48 -0400 |
---|---|---|
committer | Spencer T Brody <spencer@mongodb.com> | 2015-05-29 18:13:48 -0400 |
commit | e181ea38af737ef7aaf5f8228f870d8c7149b2bb (patch) | |
tree | 5c340753a9315e29b0c4b738c262eee7f538df64 /src/mongo/db/service_context_d.cpp | |
parent | c6a542c1e69e0027c7a10f865cfa7767d5ed089d (diff) | |
download | mongo-e181ea38af737ef7aaf5f8228f870d8c7149b2bb.tar.gz |
Revert "SERVER-14995 Move operation id, lockState and client fields to OperationContext."
This reverts commit 4ea38c308da292f43e29d32b1b53b7324db0bafe.
Diffstat (limited to 'src/mongo/db/service_context_d.cpp')
-rw-r--r-- | src/mongo/db/service_context_d.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/mongo/db/service_context_d.cpp b/src/mongo/db/service_context_d.cpp index a9b22a986fb..eb00449c625 100644 --- a/src/mongo/db/service_context_d.cpp +++ b/src/mongo/db/service_context_d.cpp @@ -227,11 +227,14 @@ namespace mongo { if (!opCtx) { return false; } - if (opCtx->getOpID() != opId) { - return false; + for( CurOp *k = CurOp::get(opCtx); k; k = k->parent() ) { + if ( k->opNum() != opId ) + continue; + + _killOperation_inlock(opCtx); + return true; } - _killOperation_inlock(opCtx); - return true; + return false; } void ServiceContextMongoD::_killOperation_inlock(OperationContext* opCtx) { @@ -292,8 +295,8 @@ namespace mongo { _killOpListeners.push_back(listener); } - std::unique_ptr<OperationContext> ServiceContextMongoD::newOpCtx() { - return stdx::make_unique<OperationContextImpl>(); + OperationContext* ServiceContextMongoD::newOpCtx() { + return new OperationContextImpl(); } void ServiceContextMongoD::setOpObserver(std::unique_ptr<OpObserver> opObserver) { |