summaryrefslogtreecommitdiff
path: root/src/mongo/db/kill_sessions_local.h
diff options
context:
space:
mode:
authorSpencer T Brody <spencer@mongodb.com>2018-09-20 15:48:46 -0400
committerSpencer T Brody <spencer@mongodb.com>2018-09-28 13:15:09 -0400
commitf96903979ac329a760e7b6f1bb5d8695d3daf2a7 (patch)
tree53ee2d48499a84fa4ea280bff0eff8cc7aa6c645 /src/mongo/db/kill_sessions_local.h
parent9406af079a894bae80fbbec4703b04974bf84476 (diff)
downloadmongo-f96903979ac329a760e7b6f1bb5d8695d3daf2a7.tar.gz
SERVER-35870 Allow stepdown to work with prepared transactions
Diffstat (limited to 'src/mongo/db/kill_sessions_local.h')
-rw-r--r--src/mongo/db/kill_sessions_local.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mongo/db/kill_sessions_local.h b/src/mongo/db/kill_sessions_local.h
index ea8f442b325..e7609355a08 100644
--- a/src/mongo/db/kill_sessions_local.h
+++ b/src/mongo/db/kill_sessions_local.h
@@ -28,6 +28,9 @@
#pragma once
+#include <vector>
+
+#include "mongo/db/concurrency/d_concurrency.h"
#include "mongo/db/session_killer.h"
/**
@@ -58,4 +61,11 @@ void killAllExpiredTransactions(OperationContext* opCtx);
*/
void killSessionsLocalShutdownAllTransactions(OperationContext* opCtx);
+/**
+ * Run during replication state transitions. Aborts all unprepared transactions and causes all
+ * prepared transactions to yield their locks into 'yieldedLocks'.
+ */
+void killSessionsLocalAbortOrYieldAllTransactions(
+ OperationContext* opCtx, std::vector<std::pair<Locker*, Locker::LockSnapshot>>* yieldedLocks);
+
} // namespace mongo