@@ -61,6 +61,8 @@ public partial class NatsConnection : INatsConnection
61
61
private TimeSpan _backoff = TimeSpan . Zero ;
62
62
private string _lastAuthError = string . Empty ;
63
63
private bool _stopRetries ;
64
+ private Task ? _publishEventsTask ;
65
+ private Task ? _reconnectLoopTask ;
64
66
65
67
public NatsConnection ( )
66
68
: this ( NatsOpts . Default )
@@ -97,7 +99,7 @@ public NatsConnection(NatsOpts opts)
97
99
SingleWriter = false ,
98
100
SingleReader = true ,
99
101
} ) ;
100
- _ = Task . Run ( PublishEventsAsync , _disposedCancellationTokenSource . Token ) ;
102
+ _publishEventsTask = Task . Run ( PublishEventsAsync , _disposedCancellationTokenSource . Token ) ;
101
103
}
102
104
103
105
// events
@@ -410,7 +412,7 @@ private async ValueTask InitialConnectAsync()
410
412
_pingTimerCancellationTokenSource = new CancellationTokenSource ( ) ;
411
413
StartPingTimer ( _pingTimerCancellationTokenSource . Token ) ;
412
414
_waitForOpenConnection . TrySetResult ( ) ;
413
- _ = Task . Run ( ReconnectLoop ) ;
415
+ _reconnectLoopTask = Task . Run ( ReconnectLoop ) ;
414
416
_eventChannel . Writer . TryWrite ( ( NatsEvent . ConnectionOpened , new NatsEventArgs ( url ? . ToString ( ) ?? string . Empty ) ) ) ;
415
417
}
416
418
}
@@ -709,7 +711,7 @@ private async void ReconnectLoop()
709
711
_pingTimerCancellationTokenSource = new CancellationTokenSource ( ) ;
710
712
StartPingTimer ( _pingTimerCancellationTokenSource . Token ) ;
711
713
_waitForOpenConnection . TrySetResult ( ) ;
712
- _ = Task . Run ( ReconnectLoop ) ;
714
+ _reconnectLoopTask = Task . Run ( ReconnectLoop ) ;
713
715
_eventChannel . Writer . TryWrite ( ( NatsEvent . ConnectionOpened , new NatsEventArgs ( url . ToString ( ) ) ) ) ;
714
716
}
715
717
}
@@ -796,7 +798,7 @@ private async Task PublishEventsAsync()
796
798
{
797
799
_logger . LogError ( NatsLogEvents . Connection , ex , "Error occured when publishing events" ) ;
798
800
if ( ! _disposedCancellationTokenSource . IsCancellationRequested )
799
- _ = Task . Run ( PublishEventsAsync , _disposedCancellationTokenSource . Token ) ;
801
+ _publishEventsTask = Task . Run ( PublishEventsAsync , _disposedCancellationTokenSource . Token ) ;
800
802
}
801
803
}
802
804
0 commit comments