ignite-sql-tests - local io

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

Branch: refs/heads/ignite-sql-tests
Commit: 0a084f65ae9d837ba43a50a2e73a84b09f43ee0a
Parents: 2923085
Author: S.Vladykin <svlady...@gridgain.com>
Authored: Mon Mar 2 16:50:04 2015 +0300
Committer: S.Vladykin <svlady...@gridgain.com>
Committed: Mon Mar 2 16:50:04 2015 +0300

----------------------------------------------------------------------
 .../internal/managers/communication/GridIoManager.java       | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0a084f65/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 968e93a..d8a609a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -1168,11 +1168,13 @@ public class GridIoManager extends 
GridManagerAdapter<CommunicationSpi<Serializa
 
             Collection<? extends ClusterNode> rmtNodes = F.view(nodes, 
F.remoteNodes(locNodeId));
 
-            if (locNode != null)
-                send(locNode, TOPIC_COMM_USER, ioMsg, PUBLIC_POOL);
-
             if (!rmtNodes.isEmpty())
                 send(rmtNodes, TOPIC_COMM_USER, ioMsg, PUBLIC_POOL);
+
+            // Will call local listeners in current thread synchronously, so 
must go the last
+            // to allow remote nodes execute the requested operation in 
parallel.
+            if (locNode != null)
+                send(locNode, TOPIC_COMM_USER, ioMsg, PUBLIC_POOL);
         }
     }
 

Reply via email to