Checking `CancelationToken.IsCancelationRequested` returns wrong value
timcassell opened this issue · comments
In .Net 6+, when a System.Threading.CancellationTokenSource
is reset, then cancelled, the converted Proto.Promises.CancelationToken
is not canceled when checking its cancelation status via IsCancelationRequested
. This test fails:
[Test]
public void ToCancelationTokenIsCanceledWhenSourceIsResetThenCanceled()
{
var cancelationSource = new CancellationTokenSource();
var token = cancelationSource.Token.ToCancelationToken();
Assert.IsFalse(token.IsCancelationRequested);
cancelationSource.TryReset();
Assert.IsFalse(token.IsCancelationRequested);
cancelationSource.Cancel();
Assert.IsTrue(token.IsCancelationRequested);
cancelationSource.Dispose();
}