From d876c92bb4b38de00a392fc5b578b6902d87db01 Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Tue, 8 Oct 2019 11:33:47 -0700 Subject: [PATCH] Disable finalization of bogus SafeWaitHandles (dotnet/corefx#41636) Fixes dotnet/corefx#41635 Commit migrated from https://github.com/dotnet/corefx/commit/72f5cff116fdfa71f44090281e091b0dcbc31f8f --- src/libraries/System.Runtime.Handles/tests/CriticalHandle.cs | 2 +- src/libraries/System.Runtime.Handles/tests/SafeHandle.cs | 2 +- src/libraries/System.Runtime.Handles/tests/SafeWaitHandle.cs | 5 ++++- .../System.Runtime.Handles/tests/SafeWaitHandleExtensions.cs | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.Runtime.Handles/tests/CriticalHandle.cs b/src/libraries/System.Runtime.Handles/tests/CriticalHandle.cs index f4e5162..09f91b5 100644 --- a/src/libraries/System.Runtime.Handles/tests/CriticalHandle.cs +++ b/src/libraries/System.Runtime.Handles/tests/CriticalHandle.cs @@ -6,7 +6,7 @@ using System; using System.Runtime.InteropServices; using Xunit; -public partial class CriticalHandle_4000_Tests +public partial class CriticalHandleTests { private class MyCriticalHandle : CriticalHandle { diff --git a/src/libraries/System.Runtime.Handles/tests/SafeHandle.cs b/src/libraries/System.Runtime.Handles/tests/SafeHandle.cs index ab530ad..d401999 100644 --- a/src/libraries/System.Runtime.Handles/tests/SafeHandle.cs +++ b/src/libraries/System.Runtime.Handles/tests/SafeHandle.cs @@ -6,7 +6,7 @@ using System; using System.Runtime.InteropServices; using Xunit; -public partial class SafeHandle_4000_Tests +public partial class SafeHandleTests { private class MySafeHandle : SafeHandle { diff --git a/src/libraries/System.Runtime.Handles/tests/SafeWaitHandle.cs b/src/libraries/System.Runtime.Handles/tests/SafeWaitHandle.cs index 365078f..81bf40a 100644 --- a/src/libraries/System.Runtime.Handles/tests/SafeWaitHandle.cs +++ b/src/libraries/System.Runtime.Handles/tests/SafeWaitHandle.cs @@ -6,7 +6,7 @@ using System; using Microsoft.Win32.SafeHandles; using Xunit; -public partial class SafeWaitHandle_4000_Tests +public partial class SafeWaitHandleTests { [Fact] public static void SafeWaitHandle_invalid() @@ -22,5 +22,8 @@ public partial class SafeWaitHandle_4000_Tests SafeWaitHandle swh = new SafeWaitHandle(new IntPtr(1), true); Assert.False(swh.IsClosed); Assert.False(swh.IsInvalid); + + // Prevent finalization. Closing of the bogus handle has unpredictable results. + swh.SetHandleAsInvalid(); } } diff --git a/src/libraries/System.Runtime.Handles/tests/SafeWaitHandleExtensions.cs b/src/libraries/System.Runtime.Handles/tests/SafeWaitHandleExtensions.cs index ad6fda6..99b5797 100644 --- a/src/libraries/System.Runtime.Handles/tests/SafeWaitHandleExtensions.cs +++ b/src/libraries/System.Runtime.Handles/tests/SafeWaitHandleExtensions.cs @@ -7,7 +7,7 @@ using System; using System.Threading; using Xunit; -public partial class SafeWaitHandleExtensions_4000_Tests +public partial class SafeWaitHandleExtensionsTests { public class MyWaitHandle : WaitHandle { -- 2.7.4