minor - added busy lock for tryFailNode()

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

Branch: refs/heads/ignite-709_1
Commit: 19e343c6576e029dea81c9fbf9a6a6e6f1f23de9
Parents: 702f172
Author: Yakov Zhdanov <yzhda...@gridgain.com>
Authored: Wed Apr 22 16:07:23 2015 +0300
Committer: Yakov Zhdanov <yzhda...@gridgain.com>
Committed: Wed Apr 22 16:07:23 2015 +0300

----------------------------------------------------------------------
 .../managers/discovery/GridDiscoveryManager.java  | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/19e343c6/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 11fa261..f6be4ed 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -1404,13 +1404,21 @@ public class GridDiscoveryManager extends 
GridManagerAdapter<DiscoverySpi> {
      * @return Whether node is failed.
      */
     public boolean tryFailNode(UUID nodeId) {
-        if (!getSpi().pingNode(nodeId)) {
-            getSpi().failNode(nodeId);
+        if (!busyLock.enterBusy())
+            return false;
 
-            return true;
-        }
+        try {
+            if (!getSpi().pingNode(nodeId)) {
+                getSpi().failNode(nodeId);
+
+                return true;
+            }
 
-        return false;
+            return false;
+        }
+        finally {
+            busyLock.leaveBusy();
+        }
     }
 
     /**

Reply via email to