-
Bug
-
Resolution: Fixed
-
P4
-
23
-
b21
The DontYieldALot flag was introduced way back in Java 1.0 to address scheduling anomalies on Solaris sparc. Due to uncertainly around scheduling and preemption (ref original "co-operative" "green threads") Java libraries would insert `Thread.yield` calls in numerous places to try to be "good citizens". With the thread scheduling model used by Hotspot on Solaris these yield calls were not only unnecessary but became a detriment to performance. To mitigate this "yield throttling" was put in place using the DontYieldALot product flag and the develop flag `DontYieldALotInterval`. If DontYieldALot was true then yields would become no-ops unless it had been `DontYieldALotInterval` milliseconds since the last real yield. The `DontYieldALot` flag was only set true on Solaris.
Skip forward 25 years and the library code relies on preemptive scheduling and doesn't use yield very much. We no longer support Solaris and so the flag is always false. It is time to deprecate the flag and then remove (obsolete) it.
Skip forward 25 years and the library code relies on preemptive scheduling and doesn't use yield very much. We no longer support Solaris and so the flag is always false. It is time to deprecate the flag and then remove (obsolete) it.
- csr for
-
JDK-8331022 Deprecate and then obsolete the DontYieldALot flag
- Closed
- relates to
-
JDK-8344250 Obsolete the DontYieldALot flag
- Resolved
-
JDK-8234370 Implementation of JEP 362: Deprecate the Solaris and SPARC Ports
- Resolved
-
JDK-8244224 Implementation of JEP 381: Remove the Solaris and SPARC Ports
- Resolved
-
JDK-8331031 unify os::dont_yield and os::naked_yield across Posix platforms
- Resolved
(2 links to)