RFR (XS) 8213383 : Wrap up pthread_cond_wait into a loop to workaround potential spurious wakeups
Ivan Gerasimov
ivan.gerasimov at oracle.com
Tue Nov 6 01:20:09 UTC 2018
Thank you Dean!
On 11/5/18 4:09 PM, dean.long at oracle.com wrote:
> Looks good, but do you want to use a while loop instead of if-do-while?
>
> if (tid != pthread_self()) {
> while (jvm_signal_installing) {
> pthread_cond_wait(&cond, &mutex);
> }
> }
>
This code will be executed before tid is initialized (see
JVM_begin_signal_setting()), so jvm_signal_installing has to be tested
first.
With kind regards,
Ivan
> dl
>
> On 11/5/18 11:59 AM, Ivan Gerasimov wrote:
>> Hello!
>>
>> In src/java.base/unix/native/libjsig/jsig.c:
>>
>> signal_lock() makes all the thread that are not jvm wait while the
>> later is installing signal handlers.
>> This is done via a call to pthread_cond_wait().
>> Spurious wakeups from pthread_cond_wait() are allowed, so it needs to
>> be wrapped up into a loop.
>>
>> Would you please help review the trivial fix?
>> Control build and testing of tier1,2,3 went fine on all supported
>> platforms.
>>
>> BUGURL: https://bugs.openjdk.java.net/browse/JDK-8213383
>> WEBREV: http://cr.openjdk.java.net/~igerasim/8213383/00/webrev/
>>
>> Thanks!
>>
>
--
With kind regards,
Ivan Gerasimov
More information about the hotspot-runtime-dev
mailing list