ActivePlan<T1>
                
                
                
                
using System.
Runtime.
CompilerServices;
namespace System.
Reactive.
Joins
{
    [
System.
Runtime.
CompilerServices.
NullableContext(
1)]
    [
System.
Runtime.
CompilerServices.
Nullable(
0)]
    
internal sealed class ActivePlan<[
System.
Runtime.
CompilerServices.
Nullable(
2)] 
T1> : 
ActivePlan
    {
        
private readonly Action<
T1> 
_onNext;
        
private readonly JoinObserver<
T1> 
_first;
        
internal ActivePlan(
JoinObserver<
T1> 
first, 
Action<
T1> 
onNext, 
Action onCompleted)
            : 
base(
onCompleted)
        {
            
_onNext = 
onNext;
            
_first = 
first;
            
AddJoinObserver(
first);
        }
        
internal override void Match()
        {
            
if (
_first.
Queue.
Count > 
0) {
                
Notification<
T1> 
notification = 
_first.
Queue.
Peek();
                
if (
notification.
Kind == 
NotificationKind.
OnCompleted)
                    
_onCompleted();
                
else {
                    
Dequeue();
                    
_onNext(
notification.
Value);
                }
            }
        }
    }
}