summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/tenant_oplog_applier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/repl/tenant_oplog_applier.cpp')
-rw-r--r--src/mongo/db/repl/tenant_oplog_applier.cpp25
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++;
}