From bbf35e694943c8553ae3e4267738e5d297431b7a Mon Sep 17 00:00:00 2001
From: bmitc <65685447+bmitc@users.noreply.github.com>
Date: Sat, 18 Mar 2023 20:57:24 -0400
Subject: [PATCH 1/3] Add `Dispose` member to `MailboxProcessor`
---
src/FSharp.Core/mailbox.fs | 3 +++
src/FSharp.Core/mailbox.fsi | 5 +++++
2 files changed, 8 insertions(+)
diff --git a/src/FSharp.Core/mailbox.fs b/src/FSharp.Core/mailbox.fs
index 91c60d25cb3..e1b4cbd9069 100644
--- a/src/FSharp.Core/mailbox.fs
+++ b/src/FSharp.Core/mailbox.fs
@@ -485,6 +485,9 @@ type MailboxProcessor<'Msg>(body, ?cancellationToken) =
member _.TryScan(scanner: 'Msg -> (Async<'T>) option, ?timeout) =
mailbox.TryScan(scanner, timeout = defaultArg timeout defaultTimeout)
+ member x.Dispose() =
+ (x :> IDisposable).Dispose()
+
interface System.IDisposable with
member _.Dispose() =
(mailbox :> IDisposable).Dispose()
diff --git a/src/FSharp.Core/mailbox.fsi b/src/FSharp.Core/mailbox.fsi
index dd1c1d42754..c3bf757169f 100644
--- a/src/FSharp.Core/mailbox.fsi
+++ b/src/FSharp.Core/mailbox.fsi
@@ -213,4 +213,9 @@ type MailboxProcessor<'Msg> =
///
member CurrentQueueLength: int
+ /// Disposes the agent's internal resources.
+ ///
+ ///
+ member Dispose: unit -> unit
+
interface System.IDisposable
From bd91ecb01262c9c434185612afad8e21b2e26e51 Mon Sep 17 00:00:00 2001
From: bmitc <65685447+bmitc@users.noreply.github.com>
Date: Sun, 19 Mar 2023 00:18:38 -0400
Subject: [PATCH 2/3] Update FSharp.Core.SurfaceArea.netstandard21.release.bsl
---
.../FSharp.Core.SurfaceArea.netstandard21.release.bsl | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/FSharp.Core.UnitTests/FSharp.Core.SurfaceArea.netstandard21.release.bsl b/tests/FSharp.Core.UnitTests/FSharp.Core.SurfaceArea.netstandard21.release.bsl
index ee1efd4c674..2c5e5686f5e 100644
--- a/tests/FSharp.Core.UnitTests/FSharp.Core.SurfaceArea.netstandard21.release.bsl
+++ b/tests/FSharp.Core.UnitTests/FSharp.Core.SurfaceArea.netstandard21.release.bsl
@@ -649,6 +649,7 @@ Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Microsoft.FSharp.Contro
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Microsoft.FSharp.Core.FSharpOption`1[TReply] TryPostAndReply[TReply](Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Control.FSharpAsyncReplyChannel`1[TReply],TMsg], Microsoft.FSharp.Core.FSharpOption`1[System.Int32])
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: TReply PostAndReply[TReply](Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Control.FSharpAsyncReplyChannel`1[TReply],TMsg], Microsoft.FSharp.Core.FSharpOption`1[System.Int32])
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void .ctor(Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg],Microsoft.FSharp.Control.FSharpAsync`1[Microsoft.FSharp.Core.Unit]], Microsoft.FSharp.Core.FSharpOption`1[System.Threading.CancellationToken])
+Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void Dispose()
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void Post(TMsg)
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void Start()
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void add_Error(Microsoft.FSharp.Control.FSharpHandler`1[System.Exception])
@@ -2512,4 +2513,4 @@ Microsoft.FSharp.Reflection.UnionCaseInfo: System.String Name
Microsoft.FSharp.Reflection.UnionCaseInfo: System.String ToString()
Microsoft.FSharp.Reflection.UnionCaseInfo: System.String get_Name()
Microsoft.FSharp.Reflection.UnionCaseInfo: System.Type DeclaringType
-Microsoft.FSharp.Reflection.UnionCaseInfo: System.Type get_DeclaringType()
\ No newline at end of file
+Microsoft.FSharp.Reflection.UnionCaseInfo: System.Type get_DeclaringType()
From 34340b7e9ac6c06067c7a21e8763226d7bb58be6 Mon Sep 17 00:00:00 2001
From: bmitc <65685447+bmitc@users.noreply.github.com>
Date: Sun, 19 Mar 2023 14:46:51 -0400
Subject: [PATCH 3/3] Update FSharp.Core.SurfaceArea.netstandard20.release.bsl
---
.../FSharp.Core.SurfaceArea.netstandard20.release.bsl | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/FSharp.Core.UnitTests/FSharp.Core.SurfaceArea.netstandard20.release.bsl b/tests/FSharp.Core.UnitTests/FSharp.Core.SurfaceArea.netstandard20.release.bsl
index 0c4153eb824..67632f25510 100644
--- a/tests/FSharp.Core.UnitTests/FSharp.Core.SurfaceArea.netstandard20.release.bsl
+++ b/tests/FSharp.Core.UnitTests/FSharp.Core.SurfaceArea.netstandard20.release.bsl
@@ -40,10 +40,10 @@ Microsoft.FSharp.Collections.Array4DModule: T[,,,] Create[T](Int32, Int32, Int32
Microsoft.FSharp.Collections.Array4DModule: T[,,,] Initialize[T](Int32, Int32, Int32, Int32, Microsoft.FSharp.Core.FSharpFunc`2[System.Int32,Microsoft.FSharp.Core.FSharpFunc`2[System.Int32,Microsoft.FSharp.Core.FSharpFunc`2[System.Int32,Microsoft.FSharp.Core.FSharpFunc`2[System.Int32,T]]]])
Microsoft.FSharp.Collections.Array4DModule: T[,,,] ZeroCreate[T](Int32, Int32, Int32, Int32)
Microsoft.FSharp.Collections.Array4DModule: Void Set[T](T[,,,], Int32, Int32, Int32, Int32, T)
-Microsoft.FSharp.Collections.ArrayModule+Parallel: System.Tuple`2[TKey,T[]][] GroupBy[T,TKey](Microsoft.FSharp.Core.FSharpFunc`2[T,TKey], T[])
Microsoft.FSharp.Collections.ArrayModule+Parallel: Microsoft.FSharp.Core.FSharpOption`1[System.Int32] TryFindIndex[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], T[])
Microsoft.FSharp.Collections.ArrayModule+Parallel: Microsoft.FSharp.Core.FSharpOption`1[TResult] TryPick[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpOption`1[TResult]], T[])
Microsoft.FSharp.Collections.ArrayModule+Parallel: Microsoft.FSharp.Core.FSharpOption`1[T] TryFind[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], T[])
+Microsoft.FSharp.Collections.ArrayModule+Parallel: System.Tuple`2[TKey,T[]][] GroupBy[T,TKey](Microsoft.FSharp.Core.FSharpFunc`2[T,TKey], T[])
Microsoft.FSharp.Collections.ArrayModule+Parallel: System.Tuple`2[T[],T[]] Partition[T](Microsoft.FSharp.Core.FSharpFunc`2[T,System.Boolean], T[])
Microsoft.FSharp.Collections.ArrayModule+Parallel: TResult[] Choose[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,Microsoft.FSharp.Core.FSharpOption`1[TResult]], T[])
Microsoft.FSharp.Collections.ArrayModule+Parallel: TResult[] Collect[T,TResult](Microsoft.FSharp.Core.FSharpFunc`2[T,TResult[]], T[])
@@ -649,6 +649,7 @@ Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Microsoft.FSharp.Contro
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Microsoft.FSharp.Core.FSharpOption`1[TReply] TryPostAndReply[TReply](Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Control.FSharpAsyncReplyChannel`1[TReply],TMsg], Microsoft.FSharp.Core.FSharpOption`1[System.Int32])
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: TReply PostAndReply[TReply](Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Control.FSharpAsyncReplyChannel`1[TReply],TMsg], Microsoft.FSharp.Core.FSharpOption`1[System.Int32])
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void .ctor(Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg],Microsoft.FSharp.Control.FSharpAsync`1[Microsoft.FSharp.Core.Unit]], Microsoft.FSharp.Core.FSharpOption`1[System.Threading.CancellationToken])
+Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void Dispose()
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void Post(TMsg)
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void Start()
Microsoft.FSharp.Control.FSharpMailboxProcessor`1[TMsg]: Void add_Error(Microsoft.FSharp.Control.FSharpHandler`1[System.Exception])