summaryrefslogtreecommitdiff
path: root/src/mongo/db/global_environment_d.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/global_environment_d.h')
-rw-r--r--src/mongo/db/global_environment_d.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mongo/db/global_environment_d.h b/src/mongo/db/global_environment_d.h
index 540a01715f5..35a8d039902 100644
--- a/src/mongo/db/global_environment_d.h
+++ b/src/mongo/db/global_environment_d.h
@@ -28,7 +28,11 @@
#pragma once
+#include <set>
+
#include "mongo/db/global_environment_experiment.h"
+#include "mongo/util/concurrency/mutex.h"
+
namespace mongo {
@@ -36,6 +40,8 @@ namespace mongo {
public:
GlobalEnvironmentMongoD();
+ ~GlobalEnvironmentMongoD();
+
void setKillAllOperations();
void unsetKillAllOperations();
@@ -44,10 +50,21 @@ namespace mongo {
bool killOperation(AtomicUInt opId);
+ void registerOperationContext(OperationContext* txn);
+
+ void unregisterOperationContext(OperationContext* txn);
+
+ void forEachOperationContext(ProcessOperationContext* procOpCtx);
+
OperationContext* newOpCtx();
private:
bool _globalKill;
+
+ typedef std::set<OperationContext*> OperationContextSet;
+
+ mongo::mutex _registeredOpContextsMutex;
+ OperationContextSet _registeredOpContexts;
};
} // namespace mongo