RFR (S): Fix for JDK-6546236 made Solaris os::yield() a no-op

harold seigel harold.seigel at oracle.com
Mon Jul 7 13:12:05 UTC 2014


Hi Fred,

Your changes look good.

Thanks, Harold

On 7/7/2014 8:56 AM, Frederic Parain wrote:
> I forgot to mention:
>
>    - final behavior is unchanged except on Solaris
>
>    - tested with JPRT, jdk_core and vm.quicklist (on Solaris)
>
> Thanks,
>
> Fred
>
> On 07/07/2014 14:08, Frederic Parain wrote:
>> Greetings,
>>
>> Fix for JDK-6546236 merged the Solaris os::sleep() implementation with
>> the shared POSIX implementation. However, Solaris code used to call
>> os:sleep(Thread::current(), 0, false) to implement os::yield(), and the
>> os::posix::sleep() method returns immediately if its time argument is
>> zero, which makes the Solaris os::yield() method a no-op.
>>
>> This changeset fixes that with other clean up:
>>
>>    1) Solaris os::yield() was changed to call NakedYield() instead
>>       of os:sleep(Thread::current(), 0, false). I made this change
>>       to make its implementation consistent with other POSIX
>>       platform and also because the change of os::yield() into
>>       a no-op didn't show any regression (so, the short sleep
>>       required in the past doesn't look necessary anymore).
>>
>>    2) Once Solaris os::yield() has been changed to call NakedYield()
>>       the JVM had two different methods to call the yield system
>>       call: os::yield() and os::NakedYield(). I replaced those
>>       methods with a new method called os::naked_yield(). This
>>       renaming aims to: avoid confusion with the old os::yield()
>>       methods and its weird implementation and fix naming style
>>       of os::NakedYield() method.
>>
>>    3) I removed the unused enum type YieldResult, which only
>>       matters on the Windows platform but it isn't used anywhere.
>>
>>
>> Bug URL: https://bugs.openjdk.java.net/browse/JDK-8047714
>>
>> Webrev: http://cr.openjdk.java.net/~fparain/8047714/webrev.00/
>>
>>
>> Thanks,
>>
>> Fred
>>
>



More information about the hotspot-runtime-dev mailing list