From 73d0bc856186d4f11a34fad8da5843350c5bc9fa Mon Sep 17 00:00:00 2001 From: Oliver Booth Date: Wed, 30 Nov 2022 17:56:51 +0000 Subject: [PATCH] Implement IDisposable --- VpSharp/src/Internal/Connection.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/VpSharp/src/Internal/Connection.cs b/VpSharp/src/Internal/Connection.cs index 648da9b..c5126ff 100644 --- a/VpSharp/src/Internal/Connection.cs +++ b/VpSharp/src/Internal/Connection.cs @@ -4,7 +4,7 @@ using VpSharp.NativeApi; namespace VpSharp.Internal; -internal sealed class Connection +internal sealed class Connection : IDisposable { private readonly object _lockObject; private readonly Socket _socket; @@ -33,6 +33,12 @@ internal sealed class Connection return (int) NetworkReturnCode.Success; } + public void Dispose() + { + _timer?.Dispose(); + _socket.Dispose(); + } + private static void ConnectCallback(IAsyncResult ar) { var connection = ar.AsyncState as Connection; @@ -83,6 +89,7 @@ internal sealed class Connection var connection = handle.Target as Connection; connection?.BeforeDestroy(); handle.Free(); + connection?.Dispose(); } private void HandleTimeout()