// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT License. // See the LICENSE file in the project root for more information. using System.Collections.Generic; using System.Threading.Tasks; namespace System.Reactive.Subjects { public sealed class SequentialAsyncAsyncSubject : AsyncAsyncSubject { protected override async ValueTask OnCompletedAsyncCore(IEnumerable> observers) { foreach (var observer in observers) { await observer.OnCompletedAsync().ConfigureAwait(false); } } protected override async ValueTask OnErrorAsyncCore(IEnumerable> observers, Exception error) { foreach (var observer in observers) { await observer.OnErrorAsync(error).ConfigureAwait(false); } } protected override async ValueTask OnNextAsyncCore(IEnumerable> observers, T value) { foreach (var observer in observers) { await observer.OnNextAsync(value).ConfigureAwait(false); } } } }