|
From: <ha...@us...> - 2008-05-08 03:50:24
|
Revision: 2003
http://cogkit.svn.sourceforge.net/cogkit/?rev=2003&view=rev
Author: hategan
Date: 2008-05-07 20:50:15 -0700 (Wed, 07 May 2008)
Log Message:
-----------
make canceling of tasks non blocking
Modified Paths:
--------------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/LateBindingScheduler.java
Added Paths:
-----------
trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/submitQueue/NonBlockingCancel.java
Modified: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/LateBindingScheduler.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/LateBindingScheduler.java 2008-05-08 03:49:11 UTC (rev 2002)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/LateBindingScheduler.java 2008-05-08 03:50:15 UTC (rev 2003)
@@ -34,6 +34,7 @@
import org.globus.cog.karajan.scheduler.submitQueue.GlobalSubmitQueue;
import org.globus.cog.karajan.scheduler.submitQueue.HostSubmitQueue;
import org.globus.cog.karajan.scheduler.submitQueue.InstanceSubmitQueue;
+import org.globus.cog.karajan.scheduler.submitQueue.NonBlockingCancel;
import org.globus.cog.karajan.scheduler.submitQueue.NonBlockingSubmit;
import org.globus.cog.karajan.scheduler.submitQueue.SubmitQueue;
import org.globus.cog.karajan.util.BoundContact;
@@ -650,13 +651,7 @@
public void cancelTask(Task task) {
TaskHandler handler = getHandler(task);
if (handler != null) {
- try {
- handler.cancel(task);
- }
- catch (Exception e) {
- // force it
- task.setStatus(Status.CANCELED);
- }
+ new NonBlockingCancel(handler, task).go();
}
}
Added: trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/submitQueue/NonBlockingCancel.java
===================================================================
--- trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/submitQueue/NonBlockingCancel.java (rev 0)
+++ trunk/current/src/cog/modules/karajan/src/org/globus/cog/karajan/scheduler/submitQueue/NonBlockingCancel.java 2008-05-08 03:50:15 UTC (rev 2003)
@@ -0,0 +1,40 @@
+//----------------------------------------------------------------------
+//This code is developed as part of the Java CoG Kit project
+//The terms of the license can be found at http://www.cogkit.org/license
+//This message may not be removed or altered.
+//----------------------------------------------------------------------
+
+/*
+ * Created on May 7, 2008
+ */
+package org.globus.cog.karajan.scheduler.submitQueue;
+
+import org.globus.cog.abstraction.interfaces.Status;
+import org.globus.cog.abstraction.interfaces.Task;
+import org.globus.cog.abstraction.interfaces.TaskHandler;
+
+public class NonBlockingCancel extends NonBlockingSubmit {
+
+ public NonBlockingCancel(TaskHandler th, Task task) {
+ super(th, task, null);
+ }
+
+ public void run() {
+ try {
+ getTaskHandler().cancel(getTask());
+ notifyPreviousQueue(null);
+ }
+ catch (Exception e) {
+ //force it
+ getTask().setStatus(Status.CANCELED);
+ notifyPreviousQueue(e);
+ }
+ catch (ThreadDeath td) {
+ throw td;
+ }
+ catch (Throwable t) {
+ notifyPreviousQueue(new Exception(t));
+ t.printStackTrace();
+ }
+ }
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|