* UnixSignal.cs: Modification of Info->count should be thread safe.
authorJonathan Pryor <jpryor@novell.com>
Fri, 8 Feb 2008 14:34:22 +0000 (14:34 -0000)
committerJonathan Pryor <jpryor@novell.com>
Fri, 8 Feb 2008 14:34:22 +0000 (14:34 -0000)
svn path=/trunk/mcs/; revision=95259

mcs/class/Mono.Posix/Mono.Unix/ChangeLog
mcs/class/Mono.Posix/Mono.Unix/UnixSignal.cs

index cb6aaabcdbda8d43141b71222b6f7aa25b7549a8..d5e62a28434e3f8bc9518629474d3efe278b65d0 100644 (file)
@@ -1,3 +1,7 @@
+2008-02-08  Jonathan Pryor  <jpryor@novell.com>
+
+       * UnixSignal.cs: Modification of Info->count should be thread safe.
+
 2008-01-28  Jonathan Pryor  <jpryor@novell.com>
 
        * UnixSignal.cs: Added; Polling and blocking based Unix signal mechanism.
index 5efb922e0c11bdfe09428a56d59d66c860e099eb..86ddea9559b8cf92be954180022ea6c93a20c9e9 100644 (file)
@@ -88,14 +88,13 @@ namespace Mono.Unix {
 
                public unsafe bool Reset ()
                {
-                       int n = Info->count;
-                       Info->count = 0;
+                       int n = Interlocked.Exchange (ref Info->count, 0);
                        return n != 0;
                }
 
                public unsafe int Count {
                        get {return Info->count;}
-                       set {Info->count = value;}
+                       set {Interlocked.Exchange (ref Info->count, value);}
                }
 
                [Map]