/// <inheritdoc />
            public void Dispose()
            {
                if (generatorTask == null)
                {
                    return;
                }
#endif
                // Notify the cancellation.
                if (lastCombinedCancellationTokenSource != taskCompletionTokenSource)
                {
                    lastCombinedCancellationTokenSource.Dispose();
                }
                taskCompletionTokenSource.Cancel();
                taskCompletionTokenSource.Dispose();
                // Do cleanup.
                buffer.Terminate();
                lastCombinedCancellationTokenSource = null;
                taskCompletionTokenSource           = null;
                lastMoveNextCancellationToken       = CancellationToken.None;
                buffer        = null;
                generatorTask = null;
#if CLR_FEATURE_ASYNC_STREAM
                return(new ValueTask());
#endif
            }
Example #2
0
 /// <inheritdoc />
 public void Dispose()
 {
     if (generatorTask == null)
     {
         return;
     }
     // Notify the cancellation.
     if (lastCombinedCancellationTokenSource != taskCompletionTokenSource)
     {
         lastCombinedCancellationTokenSource.Dispose();
     }
     taskCompletionTokenSource.Cancel();
     taskCompletionTokenSource.Dispose();
     // Do cleanup.
     buffer.Terminate();
     lastCombinedCancellationTokenSource = null;
     taskCompletionTokenSource           = null;
     lastMoveNextCancellationToken       = CancellationToken.None;
     buffer        = null;
     generatorTask = null;
 }