You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by ka...@apache.org on 2014/11/12 05:54:55 UTC
helix git commit: [HELIX-537] Shutdown executors
Repository: helix
Updated Branches:
refs/heads/helix-0.6.x de238d68e -> 8d464cf8f
[HELIX-537] Shutdown executors
Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/8d464cf8
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/8d464cf8
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/8d464cf8
Branch: refs/heads/helix-0.6.x
Commit: 8d464cf8f7b021d102e2216837ec94f27067dc79
Parents: de238d6
Author: Antony T Curtis <ac...@linkedin.com>
Authored: Tue Nov 11 11:17:43 2014 -0800
Committer: Antony T Curtis <ac...@linkedin.com>
Committed: Tue Nov 11 20:47:38 2014 -0800
----------------------------------------------------------------------
.../messaging/handling/HelixTaskExecutor.java | 2 ++
.../org/apache/helix/task/TaskStateModel.java | 20 ++++++++++++++++++++
2 files changed, 22 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/helix/blob/8d464cf8/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java b/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
index fec242f..59605e4 100644
--- a/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
+++ b/helix-core/src/main/java/org/apache/helix/messaging/handling/HelixTaskExecutor.java
@@ -153,6 +153,7 @@ public class HelixTaskExecutor implements MessageListener, TaskExecutor {
if (prevExecutor != null) {
LOG.warn("Skip creating a new thread pool for type: " + type + ", already existing pool: "
+ prevExecutor + ", isShutdown: " + prevExecutor.isShutdown());
+ newPool.shutdown();
newPool = null;
}
LOG.info("Registered message handler factory for type: " + type + ", poolSize: "
@@ -483,6 +484,7 @@ public class HelixTaskExecutor implements MessageListener, TaskExecutor {
// Will happen if we register and call init
LOG.info("Skip init a new thread pool for type: " + msgType + ", already existing pool: "
+ prevPool + ", isShutdown: " + prevPool.isShutdown());
+ newPool.shutdown();
newPool = null;
}
}
http://git-wip-us.apache.org/repos/asf/helix/blob/8d464cf8/helix-core/src/main/java/org/apache/helix/task/TaskStateModel.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/task/TaskStateModel.java b/helix-core/src/main/java/org/apache/helix/task/TaskStateModel.java
index 441bf79..9ca9ee9 100644
--- a/helix-core/src/main/java/org/apache/helix/task/TaskStateModel.java
+++ b/helix-core/src/main/java/org/apache/helix/task/TaskStateModel.java
@@ -25,6 +25,7 @@ import java.util.TimerTask;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
import org.apache.helix.HelixManager;
import org.apache.helix.NotificationContext;
@@ -54,6 +55,25 @@ public class TaskStateModel extends StateModel {
});
}
+ public boolean isShutdown() {
+ return _taskExecutor.isShutdown();
+ }
+
+ public boolean isTerminated() {
+ return _taskExecutor.isTerminated();
+ }
+
+ public void shutdown() {
+ reset();
+ _taskExecutor.shutdown();
+ _timer.cancel();
+ }
+
+ public boolean awaitTermination(long timeout, TimeUnit unit)
+ throws InterruptedException {
+ return _taskExecutor.awaitTermination(timeout, unit);
+ }
+
@Transition(to = "RUNNING", from = "INIT")
public void onBecomeRunningFromInit(Message msg, NotificationContext context) {
startTask(msg, msg.getPartitionName());