浏览代码

Merge pull request #220 from Reactive-Extensions/observerbase-fix

Add Volatile Read/Write around isStopped for thread safety
Brendan Forster 9 年之前
父节点
当前提交
7a4ee85ab5
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      Rx.NET/Source/System.Reactive.Core/Reactive/ObserverBase.cs

+ 2 - 2
Rx.NET/Source/System.Reactive.Core/Reactive/ObserverBase.cs

@@ -29,7 +29,7 @@ namespace System.Reactive
         /// <param name="value">Next element in the sequence.</param>
         public void OnNext(T value)
         {
-            if (isStopped == 0)
+            if (Volatile.Read(ref isStopped) == 0)
                 OnNextCore(value);
         }
 
@@ -98,7 +98,7 @@ namespace System.Reactive
         {
             if (disposing)
             {
-                isStopped = 1;
+                Volatile.Write(ref isStopped, 1);
             }
         }