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

Comparing jsr166/src/main/java/util/concurrent/ForkJoinPool.java (file contents):
Revision 1.315 by jsr166, Fri Jun 3 04:02:24 2016 UTC vs.
Revision 1.316 by dl, Wed Jun 8 19:44:32 2016 UTC

# Line 779 | Line 779 | public class ForkJoinPool extends Abstra
779                  do { // emulate poll from old array, push to new array
780                      int index = b & oldMask;
781                      ForkJoinTask<?> x = (ForkJoinTask<?>)
782 <                        QA.getVolatile(oldA, index);
782 >                        QA.getAcquire(oldA, index);
783                      if (x != null &&
784                          QA.compareAndSet(oldA, index, x, null))
785                          a[b & mask] = x;
# Line 819 | Line 819 | public class ForkJoinPool extends Abstra
819                      (al = a.length) > 0) {
820                      int index = (al - 1) & b;
821                      ForkJoinTask<?> t = (ForkJoinTask<?>)
822 <                        QA.getVolatile(a, index);
822 >                        QA.getAcquire(a, index);
823                      if (b++ == base) {
824                          if (t != null) {
825                              if (QA.compareAndSet(a, index, t, null)) {
# Line 1542 | Line 1542 | public class ForkJoinPool extends Abstra
1542                      int qid = q.id;                     // (never zero)
1543                      int index = (al - 1) & b;
1544                      ForkJoinTask<?> t = (ForkJoinTask<?>)
1545 <                        QA.getVolatile(a, index);
1545 >                        QA.getAcquire(a, index);
1546                      if (t != null && b++ == q.base &&
1547                          QA.compareAndSet(a, index, t, null)) {
1548                          if ((q.base = b) - q.top < 0 && qid != lastSignalId)
# Line 1653 | Line 1653 | public class ForkJoinPool extends Abstra
1653                              int qid = q.id;
1654                              int index = (al - 1) & b;
1655                              ForkJoinTask<?> t = (ForkJoinTask<?>)
1656 <                                QA.getVolatile(a, index);
1656 >                                QA.getAcquire(a, index);
1657                              if (t != null && b++ == q.base && id == q.source &&
1658                                  QA.compareAndSet(a, index, t, null)) {
1659                                  q.base = b;
# Line 1717 | Line 1717 | public class ForkJoinPool extends Abstra
1717                              }
1718                              int index = (al - 1) & b;
1719                              ForkJoinTask<?> t = (ForkJoinTask<?>)
1720 <                                QA.getVolatile(a, index);
1720 >                                QA.getAcquire(a, index);
1721                              if (t != null && b++ == q.base &&
1722                                  QA.compareAndSet(a, index, t, null)) {
1723                                  q.base = b;
# Line 1780 | Line 1780 | public class ForkJoinPool extends Abstra
1780                          (a = q.array) != null && (al = a.length) > 0) {
1781                          int index = (al - 1) & b;
1782                          ForkJoinTask<?> t = (ForkJoinTask<?>)
1783 <                            QA.getVolatile(a, index);
1783 >                            QA.getAcquire(a, index);
1784                          if (t != null && b++ == q.base &&
1785                              QA.compareAndSet(a, index, t, null)) {
1786                              q.base = b;
# Line 3122 | Line 3122 | public class ForkJoinPool extends Abstra
3122                          (al = a.length) > 0) {
3123                          int index = (al - 1) & b;
3124                          ForkJoinTask<?> t = (ForkJoinTask<?>)
3125 <                            QA.getVolatile(a, index);
3125 >                            QA.getAcquire(a, index);
3126                          if (blocker.isReleasable())
3127                              break;
3128                          else if (b++ == w.base) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines