133 |
|
* @since 1.7 |
134 |
|
* @author Doug Lea |
135 |
|
*/ |
136 |
< |
@sun.misc.Contended |
136 |
> |
@jdk.internal.vm.annotation.Contended |
137 |
|
public class ForkJoinPool extends AbstractExecutorService { |
138 |
|
|
139 |
|
/* |
752 |
|
* arrays sharing cache lines. The @Contended annotation alerts |
753 |
|
* JVMs to try to keep instances apart. |
754 |
|
*/ |
755 |
< |
@sun.misc.Contended |
755 |
> |
@jdk.internal.vm.annotation.Contended |
756 |
|
static final class WorkQueue { |
757 |
|
|
758 |
|
/** |
789 |
|
final ForkJoinPool pool; // the containing pool (may be null) |
790 |
|
final ForkJoinWorkerThread owner; // owning thread or null if shared |
791 |
|
volatile Thread parker; // == owner during call to park; else null |
792 |
< |
volatile ForkJoinTask<?> currentJoin; // task being joined in awaitJoin |
793 |
< |
@sun.misc.Contended("group2") // separate from other fields |
792 |
> |
volatile ForkJoinTask<?> currentJoin; // task being joined in awaitJoin |
793 |
> |
|
794 |
> |
@jdk.internal.vm.annotation.Contended("group2") // segregate |
795 |
|
volatile ForkJoinTask<?> currentSteal; // nonnull when running some task |
796 |
|
|
797 |
|
WorkQueue(ForkJoinPool pool, ForkJoinWorkerThread owner) { |