442 }
443
444 /**
445 * Shows stack memory for threads which have crashed (defined as
446 * having taken a signal above a Java frame)
447 *
448 * @return a flag which indicates if crashes were encountered.
449 */
450 private boolean fireShowThreadCrashes() {
451 Optional<JavaThread> crashed =
452 cachedThreads.stream()
453 .map(t -> t.getThread())
454 .filter(t -> t.getAddress().equals(
455 crashThread.getValue()))
456 .findAny();
457 crashed.ifPresent(this::showThreadStackMemory);
458 return crashed.isPresent();
459 }
460
461 private void cache() {
462 Threads threads = VM.getVM().getThreads();
463 for (JavaThread t = threads.first(); t != null; t = t.next()) {
464 if (t.isJavaThread()) {
465 cachedThreads.add(new CachedThread(t));
466 }
467 }
468 }
469
470 private void decache() {
471 cachedThreads.clear();
472 }
473
474 }
|
442 }
443
444 /**
445 * Shows stack memory for threads which have crashed (defined as
446 * having taken a signal above a Java frame)
447 *
448 * @return a flag which indicates if crashes were encountered.
449 */
450 private boolean fireShowThreadCrashes() {
451 Optional<JavaThread> crashed =
452 cachedThreads.stream()
453 .map(t -> t.getThread())
454 .filter(t -> t.getAddress().equals(
455 crashThread.getValue()))
456 .findAny();
457 crashed.ifPresent(this::showThreadStackMemory);
458 return crashed.isPresent();
459 }
460
461 private void cache() {
462 VM.getVM().getThreads().doJavaThreads((t) -> {
463 if (t.isJavaThread()) {
464 cachedThreads.add(new CachedThread(t));
465 }
466 });
467 }
468
469 private void decache() {
470 cachedThreads.clear();
471 }
472
473 }
|