You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
FPreloadShaderTask takes the ShaderPreloadLock in FShaderCodeArchive::OnShaderPreloadFinished() and then issues an async read. Another task can be picked up by the thread while waiting on that read. If that new task is also a FPreloadShaderTask it will try to aquire the ShaderPreloadLock again and deadlock. Introduce an EnsureReadNonBlocking method to IMemoryReadStream which can be called outside the lock to ensure the data is ready. We can then lock and copy out the data without incuring a wait and the potential for another FPreloadShaderTask being run while we hold the lock. #rb Ben.Ingram, Michal.Valient #ROBOMERGE-SOURCE: CL 16917416 via CL 16924675 #ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935) [CL 16925027 by eric mcdaniel in ue5-release-engine-test branch]