From de8940b8b9eee2e9fac94db25f53bfbcca6807e6 Mon Sep 17 00:00:00 2001 From: Max Weber Date: Fri, 16 Jul 2021 15:52:57 -0600 Subject: [PATCH] jshell: run cleanups on the client thread --- .../java/net/runelite/jshell/ShellPanel.java | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/runelite-jshell/src/main/java/net/runelite/jshell/ShellPanel.java b/runelite-jshell/src/main/java/net/runelite/jshell/ShellPanel.java index 1fd17a5711..b8793de258 100644 --- a/runelite-jshell/src/main/java/net/runelite/jshell/ShellPanel.java +++ b/runelite-jshell/src/main/java/net/runelite/jshell/ShellPanel.java @@ -419,18 +419,23 @@ public abstract class ShellPanel extends JPanel private void cleanup() { - for (var c : cleanup) - { - try - { - c.run(); - } - catch (Exception e) - { - shellLogger.error("Cleanup threw:", e); - } - } + var todo = new ArrayList<>(cleanup); cleanup.clear(); + + invokeOnClientThread(() -> + { + for (var c : todo) + { + try + { + c.run(); + } + catch (Exception e) + { + shellLogger.error("Cleanup threw:", e); + } + } + }); } protected abstract void invokeOnClientThread(Runnable r);