Skip to content

Commit 57fb2a1

Browse files
committed
Use CancellationSeries
1 parent c752ab5 commit 57fb2a1

File tree

1 file changed

+5
-18
lines changed

1 file changed

+5
-18
lines changed

src/VisualStudio/Core/Def/StackTraceExplorer/StackFrameViewModel.cs

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
using Microsoft.CodeAnalysis.Navigation;
2121
using Microsoft.CodeAnalysis.PooledObjects;
2222
using Microsoft.CodeAnalysis.StackTraceExplorer;
23+
using Microsoft.CodeAnalysis.Threading;
2324
using Microsoft.VisualStudio.Text.Classification;
2425

2526
namespace Microsoft.VisualStudio.LanguageServices.StackTraceExplorer;
@@ -43,13 +44,13 @@ internal sealed class StackFrameViewModel(
4344
private TextDocument? _cachedDocument;
4445
private int _cachedLineNumber;
4546

46-
private CancellationTokenSource? _navigationCancellationSource;
47+
private readonly CancellationSeries _navigationCancellation = new(threadingContext.DisposalToken);
4748

4849
public override bool ShowMouseOver => true;
4950

5051
public void NavigateToClass()
5152
{
52-
var cancellationToken = GetNavigationCancellationToken();
53+
var cancellationToken = _navigationCancellation.CreateNext();
5354
_ = NavigateToClassAsync(cancellationToken).ReportNonFatalErrorUnlessCancelledAsync(cancellationToken);
5455
}
5556

@@ -78,7 +79,7 @@ await location.TryNavigateToAsync(
7879

7980
public void NavigateToSymbol()
8081
{
81-
var cancellationToken = GetNavigationCancellationToken();
82+
var cancellationToken = _navigationCancellation.CreateNext();
8283
_ = NavigateToMethodAsync(cancellationToken).ReportNonFatalErrorUnlessCancelledAsync(cancellationToken);
8384
}
8485

@@ -96,7 +97,7 @@ public async Task NavigateToMethodAsync(CancellationToken cancellationToken)
9697

9798
public void NavigateToFile()
9899
{
99-
var cancellationToken = GetNavigationCancellationToken();
100+
var cancellationToken = _navigationCancellation.CreateNext();
100101
_ = NavigateToFileAsync(cancellationToken).ReportNonFatalErrorUnlessCancelledAsync(cancellationToken);
101102
}
102103

@@ -223,20 +224,6 @@ protected override IEnumerable<Inline> CreateInlines()
223224
return _definitionCache[symbolPart];
224225
}
225226

226-
private CancellationToken GetNavigationCancellationToken()
227-
{
228-
_navigationCancellationSource?.Cancel();
229-
_navigationCancellationSource?.Dispose();
230-
231-
if (_threadingContext.DisposalToken.IsCancellationRequested)
232-
{
233-
return _threadingContext.DisposalToken;
234-
}
235-
236-
_navigationCancellationSource = CancellationTokenSource.CreateLinkedTokenSource(_threadingContext.DisposalToken);
237-
return _navigationCancellationSource.Token;
238-
}
239-
240227
private static ImmutableArray<StackFrameTrivia> GetLeadingTrivia(StackFrameNode node)
241228
{
242229
if (node.ChildCount == 0)

0 commit comments

Comments
 (0)