From 135a85ec62d1bf437ec2d6f485e33e9ceb0c71ab Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Thu, 30 Jul 2020 21:07:35 +0300 Subject: SL-13626 Fix asset storage coroutine shutdown --- indra/newview/llviewerassetstorage.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'indra/newview/llviewerassetstorage.cpp') diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp index e0b64403ef..22269a9208 100644 --- a/indra/newview/llviewerassetstorage.cpp +++ b/indra/newview/llviewerassetstorage.cpp @@ -49,6 +49,8 @@ /// LLViewerAssetRequest ///---------------------------------------------------------------------------- +static const std::string VIEWER_ASSET_STROTRAGE_CORO_POOL = "VAssetStorage"; + /** * @brief Local class to encapsulate asset fetch requests with a timestamp. * @@ -127,6 +129,15 @@ LLViewerAssetStorage::LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager * { } +LLViewerAssetStorage::~LLViewerAssetStorage() +{ + if (!LLCoprocedureManager::wasDeleted()) + { + // This class has dedicated coroutine pool, clean it up, otherwise coroutines will crash later. + LLCoprocedureManager::instance().close(VIEWER_ASSET_STROTRAGE_CORO_POOL); + } +} + // virtual void LLViewerAssetStorage::storeAssetData( const LLTransactionID& tid, @@ -399,7 +410,7 @@ void LLViewerAssetStorage::queueRequestHttp( bool is_temp = false; LLViewerAssetStatsFF::record_enqueue(atype, with_http, is_temp); - LLCoprocedureManager::instance().enqueueCoprocedure("AssetStorage","LLViewerAssetStorage::assetRequestCoro", + LLCoprocedureManager::instance().enqueueCoprocedure(VIEWER_ASSET_STROTRAGE_CORO_POOL,"LLViewerAssetStorage::assetRequestCoro", boost::bind(&LLViewerAssetStorage::assetRequestCoro, this, req, uuid, atype, callback, user_data)); } } -- cgit v1.2.3 From e8422ec9d74e06ca7d2405a89d0e50adab1a36b0 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Fri, 31 Jul 2020 00:14:14 +0300 Subject: SL-13626 Fixed spelling error --- indra/newview/llviewerassetstorage.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'indra/newview/llviewerassetstorage.cpp') diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp index 22269a9208..b295fa2977 100644 --- a/indra/newview/llviewerassetstorage.cpp +++ b/indra/newview/llviewerassetstorage.cpp @@ -49,7 +49,7 @@ /// LLViewerAssetRequest ///---------------------------------------------------------------------------- -static const std::string VIEWER_ASSET_STROTRAGE_CORO_POOL = "VAssetStorage"; +static const std::string VIEWER_ASSET_STORAGE_CORO_POOL = "VAssetStorage"; /** * @brief Local class to encapsulate asset fetch requests with a timestamp. @@ -134,7 +134,7 @@ LLViewerAssetStorage::~LLViewerAssetStorage() if (!LLCoprocedureManager::wasDeleted()) { // This class has dedicated coroutine pool, clean it up, otherwise coroutines will crash later. - LLCoprocedureManager::instance().close(VIEWER_ASSET_STROTRAGE_CORO_POOL); + LLCoprocedureManager::instance().close(VIEWER_ASSET_STORAGE_CORO_POOL); } } @@ -410,7 +410,7 @@ void LLViewerAssetStorage::queueRequestHttp( bool is_temp = false; LLViewerAssetStatsFF::record_enqueue(atype, with_http, is_temp); - LLCoprocedureManager::instance().enqueueCoprocedure(VIEWER_ASSET_STROTRAGE_CORO_POOL,"LLViewerAssetStorage::assetRequestCoro", + LLCoprocedureManager::instance().enqueueCoprocedure(VIEWER_ASSET_STORAGE_CORO_POOL,"LLViewerAssetStorage::assetRequestCoro", boost::bind(&LLViewerAssetStorage::assetRequestCoro, this, req, uuid, atype, callback, user_data)); } } -- cgit v1.2.3