864 |
|
w.parked = false; |
865 |
|
if (w.eventCount != v) |
866 |
|
break; |
867 |
< |
else if (System.nanoTime() - startTime < SHRINK_RATE) |
867 |
> |
else if (System.nanoTime() - startTime < |
868 |
> |
SHRINK_RATE - (SHRINK_RATE / 10)) // timing slop |
869 |
|
Thread.interrupted(); // spurious wakeup |
870 |
|
else if (UNSAFE.compareAndSwapLong(this, ctlOffset, |
871 |
|
currentCtl, prevCtl)) { |
1147 |
|
ws[k] = w; |
1148 |
|
nextWorkerIndex = k + 1; |
1149 |
|
int m = g & SMASK; |
1150 |
< |
g = k >= m? ((m << 1) + 1) & SMASK : g + (SG_UNIT<<1); |
1150 |
> |
g = k > m? ((m << 1) + 1) & SMASK : g + (SG_UNIT<<1); |
1151 |
|
} |
1152 |
|
} finally { |
1153 |
|
scanGuard = g; |