SL-14807 Missed a pool init in unused constructor, additional protections

master
Andrey Kleshchev 2021-02-14 19:48:17 +02:00
parent 4a3e32e732
commit f06ebd054b
2 changed files with 12 additions and 0 deletions

View File

@ -140,11 +140,22 @@ LLCoprocedureManager::~LLCoprocedureManager()
void LLCoprocedureManager::initializePool(const std::string &poolName)
{
poolMap_t::iterator it = mPoolMap.find(poolName);
if (it != mPoolMap.end())
{
// Pools are not supposed to be initialized twice
// Todo: ideally restrict init to STATE_FIRST
LL_ERRS() << "Pool is already present " << poolName << LL_ENDL;
return;
}
// Attempt to look up a pool size in the configuration. If found use that
std::string keyName = "PoolSize" + poolName;
int size = 0;
LL_ERRS_IF(poolName.empty(), "CoprocedureManager") << "Poolname must not be empty" << LL_ENDL;
LL_INFOS("CoprocedureManager") << "Initializing pool " << poolName << LL_ENDL;
if (mPropertyQueryFn)
{

View File

@ -115,6 +115,7 @@ LLViewerAssetStorage::LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager *
mCountSucceeded(0),
mTotalBytesFetched(0)
{
LLCoprocedureManager::instance().initializePool(VIEWER_ASSET_STORAGE_CORO_POOL);
}