diff options
Diffstat (limited to 'src/mongo/db/kill_sessions_local.cpp')
-rw-r--r-- | src/mongo/db/kill_sessions_local.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/mongo/db/kill_sessions_local.cpp b/src/mongo/db/kill_sessions_local.cpp index 1eec2904850..1ab5238485f 100644 --- a/src/mongo/db/kill_sessions_local.cpp +++ b/src/mongo/db/kill_sessions_local.cpp @@ -51,10 +51,19 @@ void killSessionsLocalKillCursors(OperationContext* opCtx, const SessionKiller:: } // namespace void killSessionsLocalKillTransactions(OperationContext* opCtx, - const SessionKiller::Matcher& matcher) { + const SessionKiller::Matcher& matcher, + bool shouldKillClientCursors) { + SessionCatalog::get(opCtx)->scanSessions( + opCtx, matcher, [shouldKillClientCursors](OperationContext* opCtx, Session* session) { + session->abortArbitraryTransaction(opCtx, shouldKillClientCursors); + }); +} + +void killSessionsLocalKillTransactionCursors(OperationContext* opCtx, + const SessionKiller::Matcher& matcher) { SessionCatalog::get(opCtx)->scanSessions( opCtx, matcher, [](OperationContext* opCtx, Session* session) { - session->abortArbitraryTransaction(); + session->killTransactionCursors(opCtx); }); } @@ -72,7 +81,7 @@ void killAllExpiredTransactions(OperationContext* opCtx) { KillAllSessionsByPatternSet{makeKillAllSessionsByPattern(opCtx)}); SessionCatalog::get(opCtx)->scanSessions( opCtx, matcherAllSessions, [](OperationContext* opCtx, Session* session) { - session->abortArbitraryTransactionIfExpired(); + session->abortArbitraryTransactionIfExpired(opCtx); }); } |