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

Comparing jsr166/src/main/java/util/concurrent/Phaser.java (file contents):
Revision 1.53 by dl, Wed Dec 8 15:27:20 2010 UTC vs.
Revision 1.54 by jsr166, Mon Dec 13 00:05:36 2010 UTC

# Line 291 | Line 291 | public class Phaser {
291      }
292  
293      private static int phaseOf(long s) {
294 <        return (int) (s >>> PHASE_SHIFT);
294 >        return (int)(s >>> PHASE_SHIFT);
295      }
296  
297      private static int arrivedOf(long s) {
# Line 363 | Line 363 | public class Phaser {
363              else if (UNSAFE.compareAndSwapLong(this, stateOffset, s, s-=adj)) {
364                  if (unarrived == 0) {
365                      long n = s & PARTIES_MASK;  // base of next state
366 <                    int nextUnarrived = ((int)n) >>> PARTIES_SHIFT;
366 >                    int nextUnarrived = (int)n >>> PARTIES_SHIFT;
367                      if (root != this)
368                          return parent.doArrive(nextUnarrived == 0);
369                      if (onAdvance(phase, nextUnarrived))
# Line 411 | Line 411 | public class Phaser {
411                  }
412              }
413              else if (par == null) {                 // 1st root registration
414 <                long next = (((long) phase) << PHASE_SHIFT) | adj;
414 >                long next = ((long)phase << PHASE_SHIFT) | adj;
415                  if (UNSAFE.compareAndSwapLong(this, stateOffset, s, next))
416                      break;
417              }
# Line 424 | Line 424 | public class Phaser {
424                              // assert phase < 0 || (int)state == EMPTY;
425                          } while (!UNSAFE.compareAndSwapLong
426                                   (this, stateOffset, state,
427 <                                  (((long) phase) << PHASE_SHIFT) | adj));
427 >                                  ((long)phase << PHASE_SHIFT) | adj));
428                          break;
429                      }
430                  }
# Line 456 | Line 456 | public class Phaser {
456                     (int)(s >>> PHASE_SHIFT) &&
457                     !UNSAFE.compareAndSwapLong
458                     (this, stateOffset, s,
459 <                    s = ((((long) phase) << PHASE_SHIFT) | (s & PARTIES_MASK) |
459 >                    s = (((long)phase << PHASE_SHIFT) |
460 >                         (s & PARTIES_MASK) |
461                           ((p = (int)s >>> PARTIES_SHIFT) == 0 ? EMPTY :
462                            (u = (int)s & UNARRIVED_MASK) == 0 ? p : u))))
463                  s = state;
# Line 525 | Line 526 | public class Phaser {
526              this.evenQ = new AtomicReference<QNode>();
527              this.oddQ = new AtomicReference<QNode>();
528          }
529 <        this.state = (parties == 0) ? (long) EMPTY :
530 <            ((((long) phase) << PHASE_SHIFT) |
531 <             (((long) parties) << PARTIES_SHIFT) |
532 <             ((long) parties));
529 >        this.state = (parties == 0) ? (long)EMPTY :
530 >            ((long)phase << PHASE_SHIFT) |
531 >            ((long)parties << PARTIES_SHIFT) |
532 >            ((long)parties);
533      }
534  
535      /**
# Line 652 | Line 653 | public class Phaser {
653                  if (root != this)
654                      return parent.arriveAndAwaitAdvance();
655                  long n = s & PARTIES_MASK;  // base of next state
656 <                int nextUnarrived = ((int)n) >>> PARTIES_SHIFT;
656 >                int nextUnarrived = (int)n >>> PARTIES_SHIFT;
657                  if (onAdvance(phase, nextUnarrived))
658                      n |= TERMINATION_BIT;
659                  else if (nextUnarrived == 0)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines