Skip to content

Commit 336a78f

Browse files
committed
fixup
1 parent 7cf771d commit 336a78f

File tree

1 file changed

+56
-15
lines changed

1 file changed

+56
-15
lines changed

projects/RabbitMQ.Client/Impl/Channel.cs

Lines changed: 56 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -562,10 +562,9 @@ protected virtual void Dispose(bool disposing)
562562

563563
try
564564
{
565-
if (IsOpen)
566-
{
567-
this.AbortAsync().GetAwaiter().GetResult();
568-
}
565+
MaybeAbort();
566+
567+
MaybeDisposeOutstandingPublisherConfirmationsRateLimiter();
569568

570569
MaybeWaitForServerOriginatedClose();
571570
}
@@ -576,7 +575,6 @@ protected virtual void Dispose(bool disposing)
576575
ConsumerDispatcher.Dispose();
577576
_rpcSemaphore.Dispose();
578577
_confirmSemaphore.Dispose();
579-
_outstandingPublisherConfirmationsRateLimiter?.Dispose();
580578
}
581579
catch
582580
{
@@ -607,17 +605,11 @@ protected virtual async ValueTask DisposeAsyncCore(bool disposing)
607605

608606
try
609607
{
610-
if (IsOpen)
611-
{
612-
await this.AbortAsync()
613-
.ConfigureAwait(false);
614-
}
608+
await MaybeAbortAsync()
609+
.ConfigureAwait(false);
615610

616-
if (_outstandingPublisherConfirmationsRateLimiter is not null)
617-
{
618-
await _outstandingPublisherConfirmationsRateLimiter.DisposeAsync()
619-
.ConfigureAwait(false);
620-
}
611+
await MaybeDisposeOutstandingPublisherConfirmationsRateLimiterAsync()
612+
.ConfigureAwait(false);
621613

622614
await MaybeWaitForServerOriginatedCloseAsync()
623615
.ConfigureAwait(false);
@@ -1687,6 +1679,55 @@ private Task<bool> DispatchCommandAsync(IncomingCommand cmd, CancellationToken c
16871679
}
16881680
}
16891681

1682+
private void MaybeAbort()
1683+
{
1684+
if (IsOpen)
1685+
{
1686+
this.AbortAsync().GetAwaiter().GetResult();
1687+
}
1688+
}
1689+
1690+
private Task MaybeAbortAsync()
1691+
{
1692+
if (IsOpen)
1693+
{
1694+
return this.AbortAsync();
1695+
}
1696+
else
1697+
{
1698+
return Task.CompletedTask;
1699+
}
1700+
}
1701+
1702+
private void MaybeDisposeOutstandingPublisherConfirmationsRateLimiter()
1703+
{
1704+
if (_outstandingPublisherConfirmationsRateLimiter is not null)
1705+
{
1706+
try
1707+
{
1708+
_outstandingPublisherConfirmationsRateLimiter.Dispose();
1709+
}
1710+
catch
1711+
{
1712+
}
1713+
}
1714+
}
1715+
1716+
private async Task MaybeDisposeOutstandingPublisherConfirmationsRateLimiterAsync()
1717+
{
1718+
if (_outstandingPublisherConfirmationsRateLimiter is not null)
1719+
{
1720+
try
1721+
{
1722+
await _outstandingPublisherConfirmationsRateLimiter.DisposeAsync()
1723+
.ConfigureAwait(false);
1724+
}
1725+
catch
1726+
{
1727+
}
1728+
}
1729+
}
1730+
16901731
private void MaybeWaitForServerOriginatedClose()
16911732
{
16921733
if (_serverOriginatedChannelCloseTcs is not null)

0 commit comments

Comments
 (0)