Bladeren bron

Optimizing layout of Amb.

Bart De Smet 8 jaren geleden
bovenliggende
commit
7cac0c236a
1 gewijzigde bestanden met toevoegingen van 13 en 14 verwijderingen
  1. 13 14
      Rx.NET/Source/src/System.Reactive/Linq/Observable/Amb.cs

+ 13 - 14
Rx.NET/Source/src/System.Reactive/Linq/Observable/Amb.cs

@@ -19,24 +19,21 @@ namespace System.Reactive.Linq.ObservableImpl
 
         protected override IDisposable Run(IObserver<TSource> observer, IDisposable cancel, Action<IDisposable> setSink)
         {
-            var sink = new _(this, observer, cancel);
+            var sink = new _( observer, cancel);
             setSink(sink);
-            return sink.Run();
+            return sink.Run(this);
         }
 
-        class _ : Sink<TSource>
+        private sealed class _ : Sink<TSource>
         {
-            private readonly Amb<TSource> _parent;
-
-            public _(Amb<TSource> parent, IObserver<TSource> observer, IDisposable cancel)
+            public _(IObserver<TSource> observer, IDisposable cancel)
                 : base(observer, cancel)
             {
-                _parent = parent;
             }
 
             private AmbState _choice;
 
-            public IDisposable Run()
+            public IDisposable Run(Amb<TSource> parent)
             {
                 var ls = new SingleAssignmentDisposable();
                 var rs = new SingleAssignmentDisposable();
@@ -54,13 +51,13 @@ namespace System.Reactive.Linq.ObservableImpl
 
                 _choice = AmbState.Neither;
 
-                ls.Disposable = _parent._left.SubscribeSafe(lo);
-                rs.Disposable = _parent._right.SubscribeSafe(ro);
+                ls.Disposable = parent._left.SubscribeSafe(lo);
+                rs.Disposable = parent._right.SubscribeSafe(ro);
 
                 return d;
             }
 
-            class DecisionObserver : IObserver<TSource>
+            private sealed class DecisionObserver : IObserver<TSource>
             {
                 private readonly _ _parent;
                 private readonly AmbState _me;
@@ -92,7 +89,9 @@ namespace System.Reactive.Linq.ObservableImpl
                         }
 
                         if (_parent._choice == _me)
+                        {
                             _parent._observer.OnNext(value);
+                        }
                     }
                 }
 
@@ -137,7 +136,7 @@ namespace System.Reactive.Linq.ObservableImpl
                 }
             }
 
-            class AmbObserver : IObserver<TSource>
+            private sealed class AmbObserver : IObserver<TSource>
             {
                 public IObserver<TSource> _target;
 
@@ -161,11 +160,11 @@ namespace System.Reactive.Linq.ObservableImpl
                 }
             }
 
-            enum AmbState
+            private enum AmbState
             {
                 Left,
                 Right,
-                Neither
+                Neither,
             }
         }
     }