From a09db713563feb9eb748df5b0147e09f07166cdb Mon Sep 17 00:00:00 2001 From: Herman Kirshin Date: Wed, 21 Sep 2022 01:26:42 +0300 Subject: [PATCH 1/2] #8261 - terminating WinUIComposition loop on process exit to avoid crashes --- .../WinRT/Composition/WinUICompositorConnection.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs b/src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs index 84c3cc5c51..9a6bd9572a 100644 --- a/src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs +++ b/src/Windows/Avalonia.Win32/WinRT/Composition/WinUICompositorConnection.cs @@ -120,10 +120,14 @@ namespace Avalonia.Win32.WinRT.Composition private void RunLoop() { + var cts = new CancellationTokenSource(); + AppDomain.CurrentDomain.ProcessExit += (sender, args) => + cts.Cancel(); + using (var act = _compositor5.RequestCommitAsync()) act.SetCompleted(new RunLoopHandler(this)); - while (true) + while (!cts.IsCancellationRequested) { UnmanagedMethods.GetMessage(out var msg, IntPtr.Zero, 0, 0); lock (_pumpLock) From b101cb1ba29d22e2a84ffdd5e1aac16a1a9f5cc1 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Wed, 21 Sep 2022 12:56:57 +0300 Subject: [PATCH 2/2] Removed leftover debug code --- src/Avalonia.Base/Rendering/Composition/Compositor.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Avalonia.Base/Rendering/Composition/Compositor.cs b/src/Avalonia.Base/Rendering/Composition/Compositor.cs index 21c7dd6bf9..e6b9600e45 100644 --- a/src/Avalonia.Base/Rendering/Composition/Compositor.cs +++ b/src/Avalonia.Base/Rendering/Composition/Compositor.cs @@ -47,11 +47,7 @@ namespace Avalonia.Rendering.Composition { Loop = loop; _server = new ServerCompositor(loop, gpu, _batchObjectPool, _batchMemoryPool); - _commit = () => - { - Console.WriteLine("Dispatcher:Commit"); - Commit(); - }; + _commit = () => Commit(); DefaultEasing = new CubicBezierEasing(new Point(0.25f, 0.1f), new Point(0.25f, 1f)); }