You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
The specific mutex is "m_assetMutex" in the AssetManager. AssetManager::ReloadAssetFromData was holding this lock while calling AssignAssetData, which goes on to call OnAssetReloaded. This is dangerous, because any arbitrary logic can be executed during that call, including blocking asset loads, which is what happens in this specific deadlock case. The fix is to move the call to AssignAssetData outside of the mutex lock. AssignAssetData itself already grabs the assetMutex to protect the parts of its logic that are necessary, and then specifically releases the lock before calling OnAssetReloaded, so this change shouldn't introduce any dangerous threading conditions. (cherry picked from commit 1581a28339f12d521955edef890acfb678a0df6f) |
5 years ago | |
|---|---|---|
| .. | ||
| AzCore | 5 years ago | |
| Platform | 5 years ago | |
| Tests | 5 years ago | |
| .p4ignore | 5 years ago | |
| CMakeLists.txt | 5 years ago | |