Skip to content

Commit 4ed82b8

Browse files
Minor fixes.
1 parent c05529b commit 4ed82b8

File tree

2 files changed

+33
-15
lines changed

2 files changed

+33
-15
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: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -213,23 +213,48 @@ public static SamplerStackWalkVisitor visitor() {
213213
return ImageSingletons.lookup(SamplerStackWalkVisitor.class);
214214
}
215215

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

221234
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
222-
public void preventThreadsFromEnteringSigProfHandler() {
235+
private void preventThreadsFromEnteringSigProfHandler0() {
223236
int value = isSignalHandlerDisabledTemporarily.incrementAndGet();
224237
assert value > 0;
225238
}
226239

227240
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
228-
public void allowThreadsInSigProfHandler() {
241+
private void allowThreadsInSigProfHandler0() {
229242
int value = isSignalHandlerDisabledTemporarily.decrementAndGet();
230243
assert value >= 0;
231244
}
232245

246+
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
247+
private void waitUntilAllThreadsExitedSignalHandler0() {
248+
while (threadsInSignalHandler.get() > 0) {
249+
VMThreads.singleton().yield();
250+
}
251+
}
252+
253+
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
254+
boolean isProfilingEnabled() {
255+
return enabled;
256+
}
257+
233258
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
234259
public SamplerBufferStack availableBuffers() {
235260
return availableBuffers;
@@ -240,13 +265,6 @@ public SamplerBufferStack fullBuffers() {
240265
return fullBuffers;
241266
}
242267

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-
250268
@Uninterruptible(reason = "Called from uninterruptible code.", mayBeInlined = true)
251269
SubstrateThreadMXBean substrateThreadMXBean() {
252270
return threadMXBean;

0 commit comments

Comments
 (0)