@@ -562,10 +562,9 @@ protected virtual void Dispose(bool disposing)
562
562
563
563
try
564
564
{
565
- if ( IsOpen )
566
- {
567
- this . AbortAsync ( ) . GetAwaiter ( ) . GetResult ( ) ;
568
- }
565
+ MaybeAbort ( ) ;
566
+
567
+ MaybeDisposeOutstandingPublisherConfirmationsRateLimiter ( ) ;
569
568
570
569
MaybeWaitForServerOriginatedClose ( ) ;
571
570
}
@@ -576,7 +575,6 @@ protected virtual void Dispose(bool disposing)
576
575
ConsumerDispatcher . Dispose ( ) ;
577
576
_rpcSemaphore . Dispose ( ) ;
578
577
_confirmSemaphore . Dispose ( ) ;
579
- _outstandingPublisherConfirmationsRateLimiter ? . Dispose ( ) ;
580
578
}
581
579
catch
582
580
{
@@ -607,17 +605,11 @@ protected virtual async ValueTask DisposeAsyncCore(bool disposing)
607
605
608
606
try
609
607
{
610
- if ( IsOpen )
611
- {
612
- await this . AbortAsync ( )
613
- . ConfigureAwait ( false ) ;
614
- }
608
+ await MaybeAbortAsync ( )
609
+ . ConfigureAwait ( false ) ;
615
610
616
- if ( _outstandingPublisherConfirmationsRateLimiter is not null )
617
- {
618
- await _outstandingPublisherConfirmationsRateLimiter . DisposeAsync ( )
619
- . ConfigureAwait ( false ) ;
620
- }
611
+ await MaybeDisposeOutstandingPublisherConfirmationsRateLimiterAsync ( )
612
+ . ConfigureAwait ( false ) ;
621
613
622
614
await MaybeWaitForServerOriginatedCloseAsync ( )
623
615
. ConfigureAwait ( false ) ;
@@ -1687,6 +1679,55 @@ private Task<bool> DispatchCommandAsync(IncomingCommand cmd, CancellationToken c
1687
1679
}
1688
1680
}
1689
1681
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
+
1690
1731
private void MaybeWaitForServerOriginatedClose ( )
1691
1732
{
1692
1733
if ( _serverOriginatedChannelCloseTcs is not null )
0 commit comments