diff options
Diffstat (limited to 'src/mongo/db/global_environment_d.h')
-rw-r--r-- | src/mongo/db/global_environment_d.h | 17 |
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 |