summaryrefslogtreecommitdiff
path: root/src/mongo/db/service_context_d.cpp
diff options
context:
space:
mode:
authorSpencer T Brody <spencer@mongodb.com>2015-05-29 18:13:48 -0400
committerSpencer T Brody <spencer@mongodb.com>2015-05-29 18:13:48 -0400
commite181ea38af737ef7aaf5f8228f870d8c7149b2bb (patch)
tree5c340753a9315e29b0c4b738c262eee7f538df64 /src/mongo/db/service_context_d.cpp
parentc6a542c1e69e0027c7a10f865cfa7767d5ed089d (diff)
downloadmongo-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.cpp15
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) {