ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/concurrent/ForkJoinTask.java
(Generate patch)

Comparing jsr166/src/main/java/util/concurrent/ForkJoinTask.java (file contents):
Revision 1.143 by jsr166, Wed Aug 12 15:55:24 2020 UTC vs.
Revision 1.144 by jsr166, Wed Aug 12 18:18:12 2020 UTC

# Line 724 | Line 724 | public abstract class ForkJoinTask<V> im
724      public static void invokeAll(ForkJoinTask<?>... tasks) {
725          Throwable ex = null;
726          int last = tasks.length - 1;
727 <        for (int i = last, s; i >= 0; --i) {
727 >        for (int i = last; i >= 0; --i) {
728              ForkJoinTask<?> t;
729              if ((t = tasks[i]) == null) {
730                  ex = new NullPointerException();
731                  break;
732              }
733              if (i == 0) {
734 +                int s;
735                  if ((s = t.doExec()) >= 0)
736                      s = t.awaitJoin(true, false, false, 0L);
737                  if ((s & ABNORMAL) != 0)
# Line 740 | Line 741 | public abstract class ForkJoinTask<V> im
741              t.fork();
742          }
743          if (ex == null) {
744 <            for (int i = 1, s; i <= last; ++i) {
744 >            for (int i = 1; i <= last; ++i) {
745                  ForkJoinTask<?> t;
746                  if ((t = tasks[i]) != null) {
747 +                    int s;
748                      if ((s = t.status) >= 0)
749                          s = t.awaitJoin(false, false, false, 0L);
750                      if ((s & ABNORMAL) != 0 && (ex = t.getException(s)) != null)
# Line 785 | Line 787 | public abstract class ForkJoinTask<V> im
787              (List<? extends ForkJoinTask<?>>) tasks;
788          Throwable ex = null;
789          int last = ts.size() - 1;  // nearly same as array version
790 <        for (int i = last, s; i >= 0; --i) {
790 >        for (int i = last; i >= 0; --i) {
791              ForkJoinTask<?> t;
792              if ((t = ts.get(i)) == null) {
793                  ex = new NullPointerException();
794                  break;
795              }
796              if (i == 0) {
797 +                int s;
798                  if ((s = t.doExec()) >= 0)
799                      s = t.awaitJoin(true, false, false, 0L);
800                  if ((s & ABNORMAL) != 0)
# Line 801 | Line 804 | public abstract class ForkJoinTask<V> im
804              t.fork();
805          }
806          if (ex == null) {
807 <            for (int i = 1, s; i <= last; ++i) {
807 >            for (int i = 1; i <= last; ++i) {
808                  ForkJoinTask<?> t;
809                  if ((t = ts.get(i)) != null) {
810 +                    int s;
811                      if ((s = t.status) >= 0)
812                          s = t.awaitJoin(false, false, false, 0L);
813                      if ((s & ABNORMAL) != 0 && (ex = t.getException(s)) != null)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines