diff options
Diffstat (limited to 'src/mongo/db/range_deleter.cpp')
-rw-r--r-- | src/mongo/db/range_deleter.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/mongo/db/range_deleter.cpp b/src/mongo/db/range_deleter.cpp index caa2c63804c..cb00ad28554 100644 --- a/src/mongo/db/range_deleter.cpp +++ b/src/mongo/db/range_deleter.cpp @@ -448,8 +448,6 @@ namespace { while (!inShutdown() && !stopRequested()) { string errMsg; - boost::scoped_ptr<OperationContext> txn(getGlobalServiceContext()->newOpCtx()); - RangeDeleteEntry* nextTask = NULL; { @@ -472,12 +470,11 @@ namespace { RangeDeleteEntry* entry = *iter; set<CursorId> cursorsNow; - { - if (entry->options.waitForOpenCursors) { - _env->getCursorIds(txn.get(), - entry->options.range.ns, - &cursorsNow); - } + if (entry->options.waitForOpenCursors) { + auto txn = getGlobalServiceContext()->newOpCtx(); + _env->getCursorIds(txn.get(), + entry->options.range.ns, + &cursorsNow); } set<CursorId> cursorsLeft; @@ -516,6 +513,7 @@ namespace { } { + auto txn = getGlobalServiceContext()->newOpCtx(); nextTask->stats.deleteStartTS = jsTime(); bool delResult = _env->deleteRange(txn.get(), *nextTask, |