summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/near.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/near.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/near.cpp')
-rw-r--r--src/mongo/db/exec/near.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mongo/db/exec/near.cpp b/src/mongo/db/exec/near.cpp
index a8050e7e89f..52e4c5858e4 100644
--- a/src/mongo/db/exec/near.cpp
+++ b/src/mongo/db/exec/near.cpp
@@ -317,10 +317,10 @@ namespace mongo {
}
}
- void NearStage::invalidate(const DiskLoc& dl, InvalidationType type) {
+ void NearStage::invalidate(OperationContext* txn, const DiskLoc& dl, InvalidationType type) {
++_stats->common.invalidates;
for (size_t i = 0; i < _childrenIntervals.size(); i++) {
- _childrenIntervals[i]->covering->invalidate(dl, type);
+ _childrenIntervals[i]->covering->invalidate(txn, dl, type);
}
// If a result is in _resultBuffer and has a DiskLoc it will be in _nextIntervalSeen as
@@ -332,7 +332,7 @@ namespace mongo {
WorkingSetMember* member = _workingSet->get(seenIt->second);
verify(member->hasLoc());
- WorkingSetCommon::fetchAndInvalidateLoc(_txn, member, _collection);
+ WorkingSetCommon::fetchAndInvalidateLoc(txn, member, _collection);
verify(!member->hasLoc());
// Don't keep it around in the seen map since there's no valid DiskLoc anymore