summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2019-11-15 08:17:04 -0500
committerNat Goodspeed <nat@lindenlab.com>2020-03-25 19:07:22 -0400
commitfc2437fb5d349a094c1c64631ba6a5fd5675ddcc (patch)
tree76912f5fc5b691cc8085328e043780ccf7a598b4 /indra
parent39f4acd92144546d346ecd63224945da8d64c5db (diff)
DRTVWR-476: Introduce LLCoprocedureManager::close(). Use in tests.
The new close(void) method simply acquires the logic from ~LLCoprocedureManager() (which now calls close()). It's useful, even if only in test programs, to be able to shut down all existing LLCoprocedurePools without having to name them individually -- and without having to destroy the LLCoprocedureManager singleton instance. Deleting an LLSingleton should be done only once per process, whereas test programs want to reset the LLCoprocedureManager after each test.
Diffstat (limited to 'indra')
-rw-r--r--indra/llmessage/llcoproceduremanager.cpp13
-rw-r--r--indra/llmessage/llcoproceduremanager.h1
-rw-r--r--indra/llmessage/tests/llcoproceduremanager_test.cpp5
3 files changed, 15 insertions, 4 deletions
diff --git a/indra/llmessage/llcoproceduremanager.cpp b/indra/llmessage/llcoproceduremanager.cpp
index 712cab5b19..c1e53ea278 100644
--- a/indra/llmessage/llcoproceduremanager.cpp
+++ b/indra/llmessage/llcoproceduremanager.cpp
@@ -134,10 +134,7 @@ LLCoprocedureManager::LLCoprocedureManager()
LLCoprocedureManager::~LLCoprocedureManager()
{
- for(auto & poolEntry : mPoolMap)
- {
- poolEntry.second->close();
- }
+ close();
}
LLCoprocedureManager::poolPtr_t LLCoprocedureManager::initializePool(const std::string &poolName)
@@ -255,6 +252,14 @@ size_t LLCoprocedureManager::count(const std::string &pool) const
return it->second->count();
}
+void LLCoprocedureManager::close()
+{
+ for(auto & poolEntry : mPoolMap)
+ {
+ poolEntry.second->close();
+ }
+}
+
void LLCoprocedureManager::close(const std::string &pool)
{
poolMap_t::iterator it = mPoolMap.find(pool);
diff --git a/indra/llmessage/llcoproceduremanager.h b/indra/llmessage/llcoproceduremanager.h
index c9b853fc4c..70204ba02b 100644
--- a/indra/llmessage/llcoproceduremanager.h
+++ b/indra/llmessage/llcoproceduremanager.h
@@ -77,6 +77,7 @@ public:
size_t count() const;
size_t count(const std::string &pool) const;
+ void close();
void close(const std::string &pool);
private:
diff --git a/indra/llmessage/tests/llcoproceduremanager_test.cpp b/indra/llmessage/tests/llcoproceduremanager_test.cpp
index 734b986f80..9db13a37b5 100644
--- a/indra/llmessage/tests/llcoproceduremanager_test.cpp
+++ b/indra/llmessage/tests/llcoproceduremanager_test.cpp
@@ -75,6 +75,11 @@ namespace tut
coproceduremanager_test()
{
}
+
+ ~coproceduremanager_test()
+ {
+ LLCoprocedureManager::instance().close();
+ }
};
typedef test_group<coproceduremanager_test> coproceduremanager_t;
typedef coproceduremanager_t::object coproceduremanager_object_t;