mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
track freeze in nested dispatching
GitOrigin-RevId: 5af790969b59231c000989edf9752d8314c0b371
This commit is contained in:
committed by
intellij-monorepo-bot
parent
cbeaab0cce
commit
94d7f0dd3e
@@ -59,6 +59,7 @@ public final class PerformanceWatcher implements Disposable {
|
||||
private volatile long myLastSampling = System.currentTimeMillis();
|
||||
private long myLastDumpTime;
|
||||
private long myFreezeStart;
|
||||
private int myActiveEvents;
|
||||
private boolean myFreezeDuringStartup;
|
||||
private final AtomicInteger myEdtRequestsQueued = new AtomicInteger(0);
|
||||
|
||||
@@ -305,13 +306,26 @@ public final class PerformanceWatcher implements Disposable {
|
||||
}
|
||||
|
||||
public void edtEventStarted(long start) {
|
||||
myActiveEvents++;
|
||||
if (PRECISE_MODE) {
|
||||
edtEventFinished(); // finish previous event if any, this way we handle nested event dispatchers
|
||||
myCurrentEDTEventChecker = new FreezeCheckerTask(start);
|
||||
finishTracking();
|
||||
startTracking(start);
|
||||
}
|
||||
}
|
||||
|
||||
public void edtEventFinished() {
|
||||
myActiveEvents--;
|
||||
finishTracking();
|
||||
if (PRECISE_MODE && myActiveEvents > 0) {
|
||||
startTracking(System.currentTimeMillis());
|
||||
}
|
||||
}
|
||||
|
||||
private void startTracking(long start) {
|
||||
myCurrentEDTEventChecker = new FreezeCheckerTask(start);
|
||||
}
|
||||
|
||||
private void finishTracking() {
|
||||
FreezeCheckerTask currentChecker = myCurrentEDTEventChecker;
|
||||
if (currentChecker != null) {
|
||||
currentChecker.stop();
|
||||
|
||||
Reference in New Issue
Block a user