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.
o3de/Code/Framework/AzCore/AzCore
mbalfour 2cfb7d536e [LYN-3411] Editor freezes when saving/reloading slice due to deadlock between main thread which is blocked waiting on a loading asset, and the loading thread, which is blocked on a mutex held by the main thread.
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
..
Android Add newlines to the end of all files 5 years ago
Asset [LYN-3411] Editor freezes when saving/reloading slice due to deadlock between main thread which is blocked waiting on a loading asset, and the loading thread, which is blocked on a mutex held by the main thread. 5 years ago
Casting Initial commit 5 years ago
Component LYN-2723: Fixes issues with bad project or engine paths (#369) 5 years ago
Compression Add newlines to the end of all files 5 years ago
Console Integrating up through commit 90f050496 5 years ago
Debug Add newlines to the end of all files 5 years ago
Driller Initial commit 5 years ago
EBus Add newlines to the end of all files 5 years ago
IO Add newlines to the end of all files 5 years ago
IPC Initial commit 5 years ago
Interface Initial commit 5 years ago
JSON Add newlines to the end of all files 5 years ago
Jobs Add newlines to the end of all files 5 years ago
Math Add newlines to the end of all files 5 years ago
Memory Integrating github/staging through commit 5f214be 5 years ago
Module Add newlines to the end of all files 5 years ago
Name Initial commit 5 years ago
NativeUI LYN-2723: Fixes issues with bad project or engine paths (#369) 5 years ago
Outcome Initial commit 5 years ago
PlatformId Update the AzFramework and AzCore cmake files to point at the new location of the PlatformDefaults.h and PlatformDefaults.cpp file 5 years ago
Preprocessor Add newlines to the end of all files 5 years ago
RTTI Add newlines to the end of all files 5 years ago
Script Removed temporary debugging test 5 years ago
ScriptCanvas Initial commit 5 years ago
Serialization Merge pull request #327 from aws-lumberyard-dev/JsonSerializationTypeIdBug 5 years ago
Settings Merge pull request #410 from aws-lumberyard-dev/ly-sdk/phistere/LYN-2723-Merge 5 years ago
Slice Add newlines to the end of all files 5 years ago
Socket Initial commit 5 years ago
State Add newlines to the end of all files 5 years ago
Statistics Initial commit 5 years ago
StringFunc Integrating github/staging through commit 5f214be 5 years ago
Threading Initial commit 5 years ago
Time Initial commit 5 years ago
UnitTest Merge branch 'main' into sceneapi_script_autotest 5 years ago
UserSettings Initial commit 5 years ago
Utils Integrating up through commit 90f050496 5 years ago
XML Initial commit 5 years ago
std Add newlines to the end of all files 5 years ago
AzCoreModule.cpp LYN-2723: Fixes issues with bad project or engine paths (#369) 5 years ago
AzCoreModule.h Initial commit 5 years ago
BuildInfo.h Initial commit 5 years ago
Docs.h Initial commit 5 years ago
Platform.cpp Initial commit 5 years ago
Platform.h Initial commit 5 years ago
PlatformDef.h Initial commit 5 years ago
PlatformIncl.h Initial commit 5 years ago
PlatformRestrictedFileDef.h Initial commit 5 years ago
azcore_files.cmake Update the AzFramework and AzCore cmake files to point at the new location of the PlatformDefaults.h and PlatformDefaults.cpp file 5 years ago
azcoretestcommon_files.cmake ATOM-14889: Fix for scriptProcessorRule doesn't save with field empty 5 years ago
base.h Initial commit 5 years ago