SL-13626 Fix asset storage coroutine shutdown
parent
8103d13047
commit
135a85ec62
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@ public:
|
|||
LLViewerAssetStorage(LLMessageSystem *msg, LLXferManager *xfer,
|
||||
LLVFS *vfs, LLVFS *static_vfs);
|
||||
|
||||
~LLViewerAssetStorage();
|
||||
|
||||
virtual void storeAssetData(
|
||||
const LLTransactionID& tid,
|
||||
LLAssetType::EType atype,
|
||||
|
|
|
|||
Loading…
Reference in New Issue