Ryujinx/src
jhorv 42b9c1e8fe
Ryujinx.Ava: fixes for random hangs on exit (#4827)
* Attempt at fixing hang on exit by ending the WindowNotificationManager notification loop, so that the Thread running it can exit.

* explicitly apply the NotificationManager template to allow the notification loop to begin

* NotificationHelper - remove explicity call to ApplyTemplate(). Change to ManualResetEventSlim so we can cancel the Wait on it.

* add a timeout to AudioRenderSystem.Stop()'s waiting for the termination signal, log a warning if this timeout occurs, and continue execution

* NotifiationHelper - cancel first, the CompleteAdding()

* Remove AudioRenderSystem._terminationEvent, redundant

* NotificationHelper - use host.Closing event to trigger cancellation instead of _notifationManager.DetachedFromLogicalTree

* Change NotificationHelper to use an explicit Thread for background work.  Wait on the cancellationToken's WaitHandle so the Thread doesn't have to deal with async. Wrap foreach in try/catch (OperationCanceledException) to swallow the escaping exception from the GetConsumingEnumerable().

* adjust formatting of AsyncWorkQueue constructor to use object initializers consistently

* use AsyncWorkQueue to do everything I added in SetNotificationManager()

* Revert "use AsyncWorkQueue to do everything I added in SetNotificationManager()"

This reverts commit f0e78366b8776ec8e2fef8ab023c0db1833155d3.

* use AsyncWorkQueue to handle the Thread-related changes previously made to NotificationHelper.SetNotificationHelper(). Wrap it in Lazy<T> and force instantiation in the TemplateApplied event handler to accomodate for the fact that AsyncWorkQueue starts immediately, and the notification dispatch loop was being delayed by _templateAppliedEvent.

* impl changes suggested by AcK77

* impl changes suggested by AcK77 (more)
2023-05-26 23:57:43 +02:00
..
ARMeilleure Ensure background translation threads exited before disposing JIT (#4874) 2023-05-10 21:46:38 -03:00
Ryujinx Fix crash in SettingsViewModel when Vulkan isn't available (#4985) 2023-05-21 21:39:06 +02:00
Ryujinx.Audio Ryujinx.Ava: fixes for random hangs on exit (#4827) 2023-05-26 23:57:43 +02:00
Ryujinx.Audio.Backends.OpenAL Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Audio.Backends.SDL2 audio: sdl2: Do not report 5.1 if the device doesn't support it (#4908) 2023-05-13 07:15:16 +00:00
Ryujinx.Audio.Backends.SoundIo Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Ava Ryujinx.Ava: fixes for random hangs on exit (#4827) 2023-05-26 23:57:43 +02:00
Ryujinx.Common Ryujinx.Ava: fixes for random hangs on exit (#4827) 2023-05-26 23:57:43 +02:00
Ryujinx.Cpu GPU: Remove CPU region handle containers (#4817) 2023-05-05 23:40:46 +02:00
Ryujinx.Graphics.Device Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.GAL Replace ShaderBindings with new ResourceLayout structure for Vulkan (#5025) 2023-05-21 14:04:21 -03:00
Ryujinx.Graphics.Gpu Force reciprocal operation with value biased by constant to be precise on macOS (#5110) 2023-05-26 15:19:37 -03:00
Ryujinx.Graphics.Host1x Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Nvdec Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Nvdec.FFmpeg Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Nvdec.Vp9 Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.OpenGL Set OpenGL PixelPackBuffer to 0 when done (#4921) 2023-05-13 00:59:46 +00:00
Ryujinx.Graphics.Shader Force reciprocal operation with value biased by constant to be precise on macOS (#5110) 2023-05-26 15:19:37 -03:00
Ryujinx.Graphics.Texture Fix incorrect ASTC endpoint color when using LuminanceDelta mode (#4890) 2023-05-11 20:47:55 +02:00
Ryujinx.Graphics.Vic Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Video Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Graphics.Vulkan Truncate vertex attribute format if it exceeds stride on MoltenVK (#5094) 2023-05-25 17:03:51 -03:00
Ryujinx.Headless.SDL2 vulkan: Pass Vk instance to VulkanRenderer (#4859) 2023-05-08 13:05:37 +02:00
Ryujinx.HLE Fix mod names (#5088) 2023-05-25 23:41:03 +02:00
Ryujinx.Horizon Fix missing domain service object dispose (#4879) 2023-05-11 00:29:17 +00:00
Ryujinx.Horizon.Common Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Horizon.Generators IPC - Refactor Bcat service to use new ipc - Revisit (#4803) 2023-05-09 21:46:23 +00:00
Ryujinx.Horizon.Kernel.Generators Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Input Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Input.SDL2 Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Memory GPU: Remove CPU region handle containers (#4817) 2023-05-05 23:40:46 +02:00
Ryujinx.SDL2.Common Stop SDL from inhibiting sleep. (#4842) 2023-05-11 20:13:01 +02:00
Ryujinx.ShaderTools Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Tests Adjust Ryujinx.Tests.Memory namespace 2023-04-27 23:51:14 +02:00
Ryujinx.Tests.Memory Adjust Ryujinx.Tests.Memory namespace 2023-04-27 23:51:14 +02:00
Ryujinx.Tests.Unicorn Move solution and projects to src 2023-04-27 23:51:14 +02:00
Ryujinx.Ui.Common Ava UI: Input Menu Redesign (#4990) 2023-05-22 01:16:20 +02:00
Ryujinx.Ui.LocaleGenerator Move solution and projects to src 2023-04-27 23:51:14 +02:00
Spv.Generator Move solution and projects to src 2023-04-27 23:51:14 +02:00