summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/projection.cpp
diff options
context:
space:
mode:
authorJason Rassi <rassi@10gen.com>2014-10-20 18:38:32 -0400
committerJason Rassi <rassi@10gen.com>2014-11-20 12:52:25 -0500
commit4c221b5ce50c3eaabc0348432b6df6c41aeabee5 (patch)
treea2093f79d0409087c2ef4ac3e610da20dc663bbe /src/mongo/db/exec/projection.cpp
parent429dc5819eb37e21d9e5c4573aae8421efd50ed7 (diff)
downloadmongo-4c221b5ce50c3eaabc0348432b6df6c41aeabee5.tar.gz
SERVER-15675 PlanStage::invalidate() needs OperationContext
PlanStage::invalidate() is always called by a different thread than the stage's owning thread. The method should use the active OperationContext (the caller's) rather than the stage's OperationContext.
Diffstat (limited to 'src/mongo/db/exec/projection.cpp')
-rw-r--r--src/mongo/db/exec/projection.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mongo/db/exec/projection.cpp b/src/mongo/db/exec/projection.cpp
index d32e80e005a..2ab07c40843 100644
--- a/src/mongo/db/exec/projection.cpp
+++ b/src/mongo/db/exec/projection.cpp
@@ -256,9 +256,11 @@ namespace mongo {
_child->restoreState(opCtx);
}
- void ProjectionStage::invalidate(const DiskLoc& dl, InvalidationType type) {
+ void ProjectionStage::invalidate(OperationContext* txn,
+ const DiskLoc& dl,
+ InvalidationType type) {
++_commonStats.invalidates;
- _child->invalidate(dl, type);
+ _child->invalidate(txn, dl, type);
}
vector<PlanStage*> ProjectionStage::getChildren() const {