Skip to content

Commit 617a9fb

Browse files
committed
Fixed ObjectDisposedException
1 parent 59b2ad1 commit 617a9fb

File tree

4 files changed

+9
-7
lines changed

4 files changed

+9
-7
lines changed

src/cluster/DotNext.Net.Cluster/Net/Multiplexing/InputMultiplexer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public async Task ProcessAsync(Func<bool> condition, Socket socket)
4242
{
4343
using var enumerator = streams.GetEnumerator();
4444
for (var requiresHeartbeat = false;
45-
!Token.IsCancellationRequested && condition();
45+
condition();
4646
requiresHeartbeat = !await writeSignal.WaitAsync(heartbeatTimeout, Token).ConfigureAwait(false))
4747
{
4848
framingBuffer.Clear(reuseBuffer: true);
@@ -97,7 +97,7 @@ private async ValueTask SendAsync(ReadOnlyMemory<byte> buffer, Socket socket)
9797
timeoutSource.Start(timeout);
9898
try
9999
{
100-
bytesWritten = await socket.SendAsync(buffer, SocketFlags.None).ConfigureAwait(false);
100+
bytesWritten = await socket.SendAsync(buffer, SocketFlags.None, timeoutSource.Token).ConfigureAwait(false);
101101
}
102102
catch (OperationCanceledException e) when (timeoutSource.IsTimedOut(e))
103103
{

src/cluster/DotNext.Net.Cluster/Net/Multiplexing/MultiplexedClient.Dispatcher.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ private async Task DispatchAsync()
3131
var receiveLoop = Task.CompletedTask;
3232

3333
// send loop
34-
while (!input.Token.IsCancellationRequested)
34+
while (true)
3535
{
3636
try
3737
{

src/cluster/DotNext.Net.Cluster/Net/Multiplexing/MultiplexedListener.Dispatcher.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ private async Task DispatchAsync(Socket socket)
5252
{
5353
var receiveLoop = output.ProcessAsync(socket);
5454

55-
while (!lifetimeToken.IsCancellationRequested)
55+
while (true)
5656
{
5757
// rethrow exception from the receiving loop
5858
if (receiveLoop.IsCompleted)

src/cluster/DotNext.Net.Cluster/Net/Multiplexing/OutputMultiplexer.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@ public Task ProcessAsync(Socket socket)
3333
private async Task ProcessCoreAsync(Socket socket)
3434
{
3535
FrameHeader header;
36-
for (var bufferedBytes = 0; !Token.IsCancellationRequested; AdjustFramingBuffer(ref bufferedBytes, header, framingBuffer.Span))
36+
for (var bufferedBytes = 0;; AdjustFramingBuffer(ref bufferedBytes, header, framingBuffer.Span))
3737
{
3838
timeoutSource.Start(timeout); // resumed by heartbeat
3939
try
4040
{
4141
// read at least header
4242
while (bufferedBytes < FrameHeader.Size)
4343
{
44-
bufferedBytes += await socket.ReceiveAsync(framingBuffer.Slice(bufferedBytes), Token).ConfigureAwait(false);
44+
bufferedBytes += await socket.ReceiveAsync(framingBuffer.Slice(bufferedBytes), timeoutSource.Token).ConfigureAwait(false);
4545
}
4646

4747
header = FrameHeader.Parse(framingBuffer.Span);
@@ -91,7 +91,9 @@ private async Task ProcessCoreAsync(Socket socket)
9191
}
9292

9393
// write the frame to the output header
94-
await stream.ReadFrameAsync(header.Control, framingBuffer.Slice(FrameHeader.Size, header.Length), Token).ConfigureAwait(false);
94+
await stream
95+
.ReadFrameAsync(header.Control, framingBuffer.Slice(FrameHeader.Size, header.Length), Token)
96+
.ConfigureAwait(false);
9597
}
9698
}
9799

0 commit comments

Comments
 (0)