mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-26 22:34:27 +02:00
8299419: Thread.sleep(millis) may throw OOME
Reviewed-by: alanb
This commit is contained in:
parent
591aa7c5c7
commit
b0cff6b528
5 changed files with 8 additions and 19 deletions
|
@ -457,19 +457,20 @@ public class Thread implements Runnable {
|
|||
* Called before sleeping to create a jdk.ThreadSleep event.
|
||||
*/
|
||||
private static ThreadSleepEvent beforeSleep(long nanos) {
|
||||
ThreadSleepEvent event = null;
|
||||
if (ThreadSleepEvent.isTurnedOn()) {
|
||||
try {
|
||||
event = new ThreadSleepEvent();
|
||||
try {
|
||||
ThreadSleepEvent event = new ThreadSleepEvent();
|
||||
if (event.isEnabled()) {
|
||||
event.time = nanos;
|
||||
event.begin();
|
||||
} catch (OutOfMemoryError e) {
|
||||
event = null;
|
||||
return event;
|
||||
}
|
||||
} catch (OutOfMemoryError e) {
|
||||
// ignore
|
||||
}
|
||||
return event;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Called after sleeping to commit the jdk.ThreadSleep event.
|
||||
*/
|
||||
|
|
|
@ -30,14 +30,5 @@ package jdk.internal.event;
|
|||
*/
|
||||
|
||||
public final class ThreadSleepEvent extends Event {
|
||||
private static final ThreadSleepEvent EVENT = new ThreadSleepEvent();
|
||||
|
||||
/**
|
||||
* Returns {@code true} if event is enabled, {@code false} otherwise.
|
||||
*/
|
||||
public static boolean isTurnedOn() {
|
||||
return EVENT.isEnabled();
|
||||
}
|
||||
|
||||
public long time;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue