Skip to content

Commit 60f72d8

Browse files
committed
Also print the stacktrace of the driving thread in SafepointManager
(cherry picked from commit 4ece2e1)
1 parent e493936 commit 60f72d8

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/main/java/org/truffleruby/language/SafepointManager.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,10 +209,12 @@ private void driveArrivalAtPhaser() {
209209
}
210210

211211
private void printStacktracesOfBlockedThreads() {
212+
final Thread drivingThread = Thread.currentThread();
213+
212214
System.err.println("Dumping stacktraces of all threads:");
213215
for (Entry<Thread, StackTraceElement[]> entry : Thread.getAllStackTraces().entrySet()) {
214216
final Thread thread = entry.getKey();
215-
if (thread != Thread.currentThread() && runningThreads.contains(thread)) {
217+
if (runningThreads.contains(thread)) {
216218
final StackTraceElement[] stackTrace = entry.getValue();
217219
boolean blocked = true;
218220

@@ -225,7 +227,8 @@ private void printStacktracesOfBlockedThreads() {
225227
}
226228
}
227229

228-
System.err.println((blocked ? "BLOCKED: " : "IN SAFEPOINT: ") + thread);
230+
String kind = thread == drivingThread ? "DRIVER" : (blocked ? "BLOCKED" : "IN SAFEPOINT");
231+
System.err.println(kind + ": " + thread);
229232
for (StackTraceElement stackTraceElement : stackTrace) {
230233
System.err.println(stackTraceElement);
231234
}

0 commit comments

Comments
 (0)