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