You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/02/25 15:45:33 UTC

svn commit: r916300 - in /pivot/trunk/core/src/org/apache/pivot/util/concurrent: TaskGroup.java TaskSequence.java

Author: gbrown
Date: Thu Feb 25 14:45:33 2010
New Revision: 916300

URL: http://svn.apache.org/viewvc?rev=916300&view=rev
Log:
Support abort() in TaskGroup and TaskSequence.

Modified:
    pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskGroup.java
    pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskSequence.java

Modified: pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskGroup.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskGroup.java?rev=916300&r1=916299&r2=916300&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskGroup.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskGroup.java Thu Feb 25 14:45:33 2010
@@ -78,6 +78,22 @@
         return null;
     }
 
+    /**
+     * Aborts all tasks in this group.
+     */
+    @Override
+    public synchronized void abort() {
+        for (Task<?> task : this) {
+            synchronized(task) {
+                if (!task.isPending()) {
+                    task.abort();
+                }
+            }
+        }
+
+        super.abort();
+    }
+
     @Override
     public boolean add(Task<?> element) {
         if (isPending()) {

Modified: pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskSequence.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskSequence.java?rev=916300&r1=916299&r2=916300&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskSequence.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/util/concurrent/TaskSequence.java Thu Feb 25 14:45:33 2010
@@ -42,6 +42,10 @@
     @Override
     public Void execute() throws TaskExecutionException {
         for (Task<?> task : tasks) {
+            if (abort) {
+                throw new AbortException();
+            }
+
             task.execute();
         }