summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/plan_yield_policy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/query/plan_yield_policy.cpp')
-rw-r--r--src/mongo/db/query/plan_yield_policy.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/query/plan_yield_policy.cpp b/src/mongo/db/query/plan_yield_policy.cpp
index dd660ef657e..8243f760328 100644
--- a/src/mongo/db/query/plan_yield_policy.cpp
+++ b/src/mongo/db/query/plan_yield_policy.cpp
@@ -49,7 +49,12 @@ PlanYieldPolicy::PlanYieldPolicy(YieldPolicy policy,
: _policy(policy),
_yieldable(yieldable),
_callbacks(std::move(callbacks)),
- _elapsedTracker(cs, yieldIterations, yieldPeriod) {}
+ _elapsedTracker(cs, yieldIterations, yieldPeriod) {
+ invariant(!_yieldable || _yieldable->yieldable() ||
+ policy == YieldPolicy::WRITE_CONFLICT_RETRY_ONLY || policy == YieldPolicy::NO_YIELD ||
+ policy == YieldPolicy::INTERRUPT_ONLY || policy == YieldPolicy::ALWAYS_TIME_OUT ||
+ policy == YieldPolicy::ALWAYS_MARK_KILLED);
+}
bool PlanYieldPolicy::shouldYieldOrInterrupt(OperationContext* opCtx) {
if (_policy == YieldPolicy::INTERRUPT_ONLY) {