Skip to content

Commit 7a1de99

Browse files
Im5tukblok
authored andcommitted
Always dispose cancellation token sources (#926)
1 parent 4271b97 commit 7a1de99

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

lib/PuppeteerSharp/Helpers/TaskHelper.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -93,20 +93,21 @@ public static async Task<T> WithTimeout<T>(
9393
private static async Task<bool> TimeoutTask(Task task, int milliseconds)
9494
{
9595
var tcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);
96-
var cancellationToken = new CancellationTokenSource();
97-
98-
if (milliseconds > 0)
99-
{
100-
cancellationToken.CancelAfter(milliseconds);
101-
}
102-
using (cancellationToken.Token.Register(s => ((TaskCompletionSource<bool>)s).TrySetResult(true), tcs))
96+
using (var cancellationToken = new CancellationTokenSource())
10397
{
104-
if (task != await Task.WhenAny(task, tcs.Task))
98+
if (milliseconds > 0)
99+
{
100+
cancellationToken.CancelAfter(milliseconds);
101+
}
102+
using (cancellationToken.Token.Register(s => ((TaskCompletionSource<bool>)s).TrySetResult(true), tcs))
105103
{
106-
return true;
104+
if (task != await Task.WhenAny(task, tcs.Task))
105+
{
106+
return true;
107+
}
107108
}
109+
return false;
108110
}
109-
return false;
110111
}
111112
}
112113
}

0 commit comments

Comments
 (0)