diff options
Diffstat (limited to 'src/mongo/db/repl/tenant_oplog_applier.cpp')
-rw-r--r-- | src/mongo/db/repl/tenant_oplog_applier.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/mongo/db/repl/tenant_oplog_applier.cpp b/src/mongo/db/repl/tenant_oplog_applier.cpp index 41b9c1a1738..e7cfd088d24 100644 --- a/src/mongo/db/repl/tenant_oplog_applier.cpp +++ b/src/mongo/db/repl/tenant_oplog_applier.cpp @@ -502,7 +502,7 @@ TenantOplogApplier::OpTimePair TenantOplogApplier::_writeNoOpEntries( if (thread == numOplogThreads - 1) { numOps = numOpsRemaining; } - _writerPool->schedule([=, &status = statusVector.at(thread)](auto scheduleStatus) { + _writerPool->schedule([=, this, &status = statusVector.at(thread)](auto scheduleStatus) { if (!scheduleStatus.isOK()) { status = scheduleStatus; } else { @@ -521,18 +521,19 @@ TenantOplogApplier::OpTimePair TenantOplogApplier::_writeNoOpEntries( // Dispatch noop writes for oplog entries from the same session into the same writer thread. size_t sessionThreadNum = 0; for (const auto& s : sessionOps) { - _writerPool->schedule([=, &status = statusVector.at(numOplogThreads + sessionThreadNum)]( - auto scheduleStatus) { - if (!scheduleStatus.isOK()) { - status = scheduleStatus; - } else { - try { - _writeSessionNoOpsForRange(s.second.begin(), s.second.end()); - } catch (const DBException& e) { - status = e.toStatus(); + _writerPool->schedule( + [=, this, &status = statusVector.at(numOplogThreads + sessionThreadNum)]( + auto scheduleStatus) { + if (!scheduleStatus.isOK()) { + status = scheduleStatus; + } else { + try { + _writeSessionNoOpsForRange(s.second.begin(), s.second.end()); + } catch (const DBException& e) { + status = e.toStatus(); + } } - } - }); + }); sessionThreadNum++; } |