You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2016/02/20 10:16:49 UTC

[07/12] ignite git commit: IGNITE-2600 .NET: Optimization - do not serialize object if AtomicReference CAS succeeded. This closes #496.

IGNITE-2600 .NET: Optimization - do not serialize object if AtomicReference CAS succeeded. This closes #496.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/592ece03
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/592ece03
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/592ece03

Branch: refs/heads/ignite-1786
Commit: 592ece0370bed97c23b0d53f74b14a5bb78a0d2e
Parents: af17db5
Author: Pavel Tupitsyn <pt...@gridgain.com>
Authored: Fri Feb 19 17:03:47 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Feb 19 17:03:47 2016 +0300

----------------------------------------------------------------------
 .../platform/datastructures/PlatformAtomicReference.java      | 7 ++++++-
 .../Apache.Ignite.Core/Impl/DataStructures/AtomicReference.cs | 2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/592ece03/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java
index 81b7570..5080139 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/datastructures/PlatformAtomicReference.java
@@ -132,7 +132,12 @@ public class PlatformAtomicReference extends PlatformAbstractTarget {
 
             Object res = atomicRef.compareAndSetAndGet(val, cmp);
 
-            writer.writeObject(res);
+            if (cmp == res)
+                writer.writeBoolean(true);
+            else {
+                writer.writeBoolean(false);
+                writer.writeObject(res);
+            }
         }
         else
             super.processInStreamOutStream(type, reader, writer);

http://git-wip-us.apache.org/repos/asf/ignite/blob/592ece03/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataStructures/AtomicReference.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataStructures/AtomicReference.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataStructures/AtomicReference.cs
index e871412..d22afeb 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataStructures/AtomicReference.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataStructures/AtomicReference.cs
@@ -74,7 +74,7 @@ namespace Apache.Ignite.Core.Impl.DataStructures
                     writer.WriteObject(value);
                     writer.WriteObject(comparand);
                 },
-                stream => Marshaller.StartUnmarshal(stream).Deserialize<T>());
+                stream => stream.ReadBool() ? comparand : Marshaller.StartUnmarshal(stream).Deserialize<T>());
         }
 
         /** <inheritDoc /> */