summaryrefslogtreecommitdiff
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
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.
-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;