Skip to content

Commit ede2bfc

Browse files
Minor fixes.
1 parent c05529b commit ede2bfc

File tree

2 files changed

+35
-14
lines changed

2 files changed

+35
-14
lines changed

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/jfr/JfrChunkWriter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -422,13 +422,13 @@ private void changeEpoch() {
422422
*/
423423
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
424424
private void processSamplerBuffers() {
425-
SubstrateSigprofHandler.singleton().preventThreadsFromEnteringSigProfHandler();
425+
SubstrateSigprofHandler.preventThreadsFromEnteringSigProfHandler();
426426
try {
427-
SubstrateSigprofHandler.singleton().waitUntilAllThreadsExitedSignalHandler();
427+
SubstrateSigprofHandler.waitUntilAllThreadsExitedSignalHandler();
428428
SamplerBuffersAccess.processActiveBuffers();
429429
SamplerBuffersAccess.processFullBuffers();
430430
} finally {
431-
SubstrateSigprofHandler.singleton().allowThreadsInSigProfHandler();
431+
SubstrateSigprofHandler.allowThreadsInSigProfHandler();
432432
}
433433
}
434434
}

substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/sampler/SubstrateSigprofHandler.java

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -214,22 +214,50 @@ public static SamplerStackWalkVisitor visitor() {
214214
}
215215

216216
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
217-
boolean isProfilingEnabled() {
218-
return enabled;
217+
public static void preventThreadsFromEnteringSigProfHandler() {
218+
if (ImageSingletons.contains(SubstrateSigprofHandler.class)) {
219+
singleton().preventThreadsFromEnteringSigProfHandler0();
220+
}
221+
}
222+
223+
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
224+
public static void allowThreadsInSigProfHandler() {
225+
if (ImageSingletons.contains(SubstrateSigprofHandler.class)) {
226+
singleton().allowThreadsInSigProfHandler0();
227+
}
219228
}
220229

221230
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
222-
public void preventThreadsFromEnteringSigProfHandler() {
231+
public static void waitUntilAllThreadsExitedSignalHandler() {
232+
if (ImageSingletons.contains(SubstrateSigprofHandler.class)) {
233+
singleton().waitUntilAllThreadsExitedSignalHandler0();
234+
}
235+
}
236+
237+
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
238+
private void preventThreadsFromEnteringSigProfHandler0() {
223239
int value = isSignalHandlerDisabledTemporarily.incrementAndGet();
224240
assert value > 0;
225241
}
226242

227243
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
228-
public void allowThreadsInSigProfHandler() {
244+
private void allowThreadsInSigProfHandler0() {
229245
int value = isSignalHandlerDisabledTemporarily.decrementAndGet();
230246
assert value >= 0;
231247
}
232248

249+
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
250+
private void waitUntilAllThreadsExitedSignalHandler0() {
251+
while (threadsInSignalHandler.get() > 0) {
252+
VMThreads.singleton().yield();
253+
}
254+
}
255+
256+
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
257+
boolean isProfilingEnabled() {
258+
return enabled;
259+
}
260+
233261
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
234262
public SamplerBufferStack availableBuffers() {
235263
return availableBuffers;
@@ -240,13 +268,6 @@ public SamplerBufferStack fullBuffers() {
240268
return fullBuffers;
241269
}
242270

243-
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
244-
public void waitUntilAllThreadsExitedSignalHandler() {
245-
while (threadsInSignalHandler.get() > 0) {
246-
VMThreads.singleton().yield();
247-
}
248-
}
249-
250271
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
251272
SubstrateThreadMXBean substrateThreadMXBean() {
252273
return threadMXBean;

0 commit comments

Comments
 (0)