From b184e5d8d91fa1d27fe511d18fbd097541b21f89 Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 28 Apr 2017 18:02:47 +0200 Subject: [PATCH] run LaterInvocator events in small batches to decrease the number of Swing events produced to eliminate "too many events" from LaterInvocator redispatches to make TransferToEDTQueue not so necessary --- .../openapi/application/impl/LaterInvocator.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/application/impl/LaterInvocator.java b/platform/platform-impl/src/com/intellij/openapi/application/impl/LaterInvocator.java index 9ee0ca8a0ee9..85eca3dc51fa 100644 --- a/platform/platform-impl/src/com/intellij/openapi/application/impl/LaterInvocator.java +++ b/platform/platform-impl/src/com/intellij/openapi/application/impl/LaterInvocator.java @@ -394,8 +394,15 @@ public class LaterInvocator { @Override public void run() { FLUSHER_SCHEDULED.set(false); - if (runNextEvent()) { - requestFlush(); + long startTime = System.currentTimeMillis(); + while (true) { + if (!runNextEvent()) { + return; + } + if (System.currentTimeMillis() - startTime > 5) { + requestFlush(); + return; + } } }