< prev index next >

src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 465,476 **** jlong java_interval = _interval_java == 0 ? max_jlong : MAX2<jlong>(_interval_java, 10); jlong native_interval = _interval_native == 0 ? max_jlong : MAX2<jlong>(_interval_native, 10); jlong now_ms = get_monotonic_ms(); ! jlong next_j = java_interval + last_java_ms - now_ms; ! jlong next_n = native_interval + last_native_ms - now_ms; jlong sleep_to_next = MIN2<jlong>(next_j, next_n); if (sleep_to_next > 0) { os::naked_short_sleep(sleep_to_next); --- 465,485 ---- jlong java_interval = _interval_java == 0 ? max_jlong : MAX2<jlong>(_interval_java, 10); jlong native_interval = _interval_native == 0 ? max_jlong : MAX2<jlong>(_interval_native, 10); jlong now_ms = get_monotonic_ms(); ! /* ! * Let I be java_interval or native_interval. ! * Let L be last_java_ms or last_native_ms. ! * Let N be now_ms. ! * ! * Interval, I, might be max_jlong so the addition ! * could potentially overflow without parenthesis (UB). Also note that ! * L - N < 0. Avoid UB, by adding parenthesis. ! */ ! jlong next_j = java_interval + (last_java_ms - now_ms); ! jlong next_n = native_interval + (last_native_ms - now_ms); jlong sleep_to_next = MIN2<jlong>(next_j, next_n); if (sleep_to_next > 0) { os::naked_short_sleep(sleep_to_next);
< prev index next >