You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/05/16 20:40:07 UTC
[03/10] ignite git commit: Fixed thread pools incorrect shutdown.
Fixed thread pools incorrect shutdown.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/dacf973e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/dacf973e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/dacf973e
Branch: refs/heads/ignite-5075-cacheStart
Commit: dacf973ef8580ff649fc2dafd5a55a420edf7759
Parents: 5b16b51
Author: Andrey V. Mashenkov <an...@gmail.com>
Authored: Mon May 15 17:39:52 2017 +0300
Committer: Andrey V. Mashenkov <an...@gmail.com>
Committed: Tue May 16 12:25:44 2017 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheAdapter.java | 12 +++---
.../ignite/internal/util/IgniteUtils.java | 45 +++++++++++---------
2 files changed, 30 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/dacf973e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 0ad383b..ee7af80 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -1062,14 +1062,14 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
if (!F.isEmpty(jobs)) {
ExecutorService execSvc = null;
- if (jobs.size() > 1) {
- execSvc = Executors.newFixedThreadPool(jobs.size() - 1);
+ try {
+ if (jobs.size() > 1) {
+ execSvc = Executors.newFixedThreadPool(jobs.size() - 1);
- for (int i = 1; i < jobs.size(); i++)
- execSvc.execute(jobs.get(i));
- }
+ for (int i = 1; i < jobs.size(); i++)
+ execSvc.execute(jobs.get(i));
+ }
- try {
jobs.get(0).run();
}
finally {
http://git-wip-us.apache.org/repos/asf/ignite/blob/dacf973e/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 6f8728c..bef7b98 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -1878,33 +1878,36 @@ public abstract class IgniteUtils {
ExecutorService executor = Executors.newFixedThreadPool(Math.min(10, addrs.size()));
- for (final InetAddress addr : addrs) {
- futs.add(executor.submit(new Runnable() {
- @Override public void run() {
- if (reachable(addr, reachTimeout)) {
- synchronized (res) {
- res.add(addr);
+ try {
+ for (final InetAddress addr : addrs) {
+ futs.add(executor.submit(new Runnable() {
+ @Override public void run() {
+ if (reachable(addr, reachTimeout)) {
+ synchronized (res) {
+ res.add(addr);
+ }
}
}
- }
- }));
- }
-
- for (Future<?> fut : futs) {
- try {
- fut.get();
+ }));
}
- catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- throw new IgniteException("Thread has been interrupted.", e);
- }
- catch (ExecutionException e) {
- throw new IgniteException(e);
+ for (Future<?> fut : futs) {
+ try {
+ fut.get();
+ }
+ catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+
+ throw new IgniteException("Thread has been interrupted.", e);
+ }
+ catch (ExecutionException e) {
+ throw new IgniteException(e);
+ }
}
}
-
- executor.shutdown();
+ finally {
+ executor.shutdown();
+ }
return res;
}