File tree Expand file tree Collapse file tree 1 file changed +7
-2
lines changed
substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jvmstat Expand file tree Collapse file tree 1 file changed +7
-2
lines changed Original file line number Diff line number Diff line change 44
44
import com .oracle .svm .core .locks .VMMutex ;
45
45
import com .oracle .svm .core .option .HostedOptionKey ;
46
46
import com .oracle .svm .core .option .RuntimeOptionKey ;
47
+ import com .oracle .svm .core .thread .RecurringCallbackSupport ;
47
48
import com .oracle .svm .core .util .VMError ;
48
49
49
50
import jdk .graal .compiler .options .Option ;
@@ -184,8 +185,9 @@ private static class PerfDataThread extends Thread {
184
185
185
186
@ Override
186
187
public void run () {
187
- initializeMemory ( );
188
+ RecurringCallbackSupport . suspendCallbackTimer ( "Performance data thread must not execute recurring callbacks." );
188
189
190
+ initializeMemory ();
189
191
try {
190
192
sampleData ();
191
193
ImageSingletons .lookup (PerfMemory .class ).setAccessible ();
@@ -213,8 +215,11 @@ private void initializeMemory() {
213
215
214
216
initialized = true ;
215
217
initializationCondition .broadcast ();
218
+ } catch (OutOfMemoryError e ) {
219
+ /* For now, we can only rethrow the error to terminate the thread (see GR-40601). */
220
+ throw e ;
216
221
} catch (Throwable e ) {
217
- VMError .shouldNotReachHere (ERROR_DURING_INITIALIZATION , e );
222
+ throw VMError .shouldNotReachHere (ERROR_DURING_INITIALIZATION , e );
218
223
} finally {
219
224
initializationMutex .unlock ();
220
225
}
You can’t perform that action at this time.
0 commit comments