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();
}