diff options
author | Jason Rassi <rassi@10gen.com> | 2014-10-20 18:38:32 -0400 |
---|---|---|
committer | Jason Rassi <rassi@10gen.com> | 2014-11-20 12:52:25 -0500 |
commit | 4c221b5ce50c3eaabc0348432b6df6c41aeabee5 (patch) | |
tree | a2093f79d0409087c2ef4ac3e610da20dc663bbe /src/mongo/db/exec/near.cpp | |
parent | 429dc5819eb37e21d9e5c4573aae8421efd50ed7 (diff) | |
download | mongo-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.cpp | 6 |
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 |