Skip to content
This repository was archived by the owner on Dec 18, 2018. It is now read-only.

Commit 623c27a

Browse files
authored
Dispose SocketAsyncEventArgs when we dispose the Socket (#2459)
1 parent ba2b883 commit 623c27a

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

src/Kestrel.Transport.Sockets/Internal/SocketConnection.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ public async Task StartAsync(IConnectionDispatcher connectionDispatcher)
8686

8787
// Dispose the socket(should noop if already called)
8888
_socket.Dispose();
89+
_receiver.Dispose();
90+
_sender.Dispose();
8991
}
9092
catch (Exception ex)
9193
{

src/Kestrel.Transport.Sockets/Internal/SocketReceiver.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
99
{
10-
public class SocketReceiver
10+
public class SocketReceiver : IDisposable
1111
{
1212
private readonly Socket _socket;
1313
private readonly SocketAsyncEventArgs _eventArgs = new SocketAsyncEventArgs();
@@ -37,5 +37,10 @@ public SocketAwaitable ReceiveAsync(Memory<byte> buffer)
3737

3838
return _awaitable;
3939
}
40+
41+
public void Dispose()
42+
{
43+
_eventArgs.Dispose();
44+
}
4045
}
4146
}

src/Kestrel.Transport.Sockets/Internal/SocketSender.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
1313
{
14-
public class SocketSender
14+
public class SocketSender : IDisposable
1515
{
1616
private readonly Socket _socket;
1717
private readonly SocketAsyncEventArgs _eventArgs = new SocketAsyncEventArgs();
@@ -98,5 +98,10 @@ private List<ArraySegment<byte>> GetBufferList(ReadOnlySequence<byte> buffer)
9898

9999
return _bufferList;
100100
}
101+
102+
public void Dispose()
103+
{
104+
_eventArgs.Dispose();
105+
}
101106
}
102107
}

0 commit comments

Comments
 (0)