Преглед изворни кода

Using gate in SequenceEqual to synchronize outgoing notifications.

Bart De Smet пре 10 година
родитељ
комит
9eb503a867

+ 10 - 4
Rx.NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/SequenceEqual.cs

@@ -122,8 +122,11 @@ namespace System.Reactive.Linq.ObservableImpl
 
 
                 public void OnError(Exception error)
                 public void OnError(Exception error)
                 {
                 {
-                    _parent._observer.OnError(error);
-                    _parent.Dispose();
+                    lock (_parent._gate)
+                    {
+                        _parent._observer.OnError(error);
+                        _parent.Dispose();
+                    }
                 }
                 }
 
 
                 public void OnCompleted()
                 public void OnCompleted()
@@ -197,8 +200,11 @@ namespace System.Reactive.Linq.ObservableImpl
 
 
                 public void OnError(Exception error)
                 public void OnError(Exception error)
                 {
                 {
-                    _parent._observer.OnError(error);
-                    _parent.Dispose();
+                    lock (_parent._gate)
+                    {
+                        _parent._observer.OnError(error);
+                        _parent.Dispose();
+                    }
                 }
                 }
 
 
                 public void OnCompleted()
                 public void OnCompleted()