From 0420d5cbb59363c5cdda10c4e042d6bb2f990139 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 22 Nov 2017 22:51:53 +0100 Subject: [PATCH] speedup MessageBus.hasUndeliveredEvents (inspired by IDEA-182529) --- .../util/messages/impl/MessageBusConnectionImpl.java | 5 ++++- .../src/com/intellij/util/messages/impl/MessageBusImpl.java | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/platform/util/src/com/intellij/util/messages/impl/MessageBusConnectionImpl.java b/platform/util/src/com/intellij/util/messages/impl/MessageBusConnectionImpl.java index 4f2fe46b7dc9..bac709b9a1e1 100644 --- a/platform/util/src/com/intellij/util/messages/impl/MessageBusConnectionImpl.java +++ b/platform/util/src/com/intellij/util/messages/impl/MessageBusConnectionImpl.java @@ -139,7 +139,10 @@ public class MessageBusConnectionImpl implements MessageBusConnection { } boolean containsMessage(@NotNull Topic topic) { - for (Message message : myPendingMessages.get()) { + Queue pendingMessages = myPendingMessages.get(); + if (pendingMessages.isEmpty()) return false; + + for (Message message : pendingMessages) { if (message.getTopic() == topic) { return true; } diff --git a/platform/util/src/com/intellij/util/messages/impl/MessageBusImpl.java b/platform/util/src/com/intellij/util/messages/impl/MessageBusImpl.java index 87d12d493727..11e760a4c70f 100644 --- a/platform/util/src/com/intellij/util/messages/impl/MessageBusImpl.java +++ b/platform/util/src/com/intellij/util/messages/impl/MessageBusImpl.java @@ -301,7 +301,8 @@ public class MessageBusImpl implements MessageBus { } private boolean isDispatchingAnything() { - return getRootBus().myWaitingBuses.get() != null; + SortedMap waitingBuses = getRootBus().myWaitingBuses.get(); + return waitingBuses != null && !waitingBuses.isEmpty(); } private void checkNotDisposed() {