From 4762a322f2abae8f8e3b92447ae6a7da72146b3a Mon Sep 17 00:00:00 2001 From: Adam Date: Fri, 8 Dec 2017 17:30:01 -0500 Subject: [PATCH] runelite-client: fix scheduler for concurrent modifications Plugins can be loading and unloading while the scheduler is running --- .../src/main/java/net/runelite/client/task/Scheduler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/task/Scheduler.java b/runelite-client/src/main/java/net/runelite/client/task/Scheduler.java index ed13a360e0..2f6446c3ab 100644 --- a/runelite-client/src/main/java/net/runelite/client/task/Scheduler.java +++ b/runelite-client/src/main/java/net/runelite/client/task/Scheduler.java @@ -28,9 +28,9 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.time.Duration; import java.time.Instant; -import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledExecutorService; import javax.inject.Inject; import javax.inject.Singleton; @@ -40,7 +40,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class Scheduler { - private final List scheduledMethods = new ArrayList<>(); + private final List scheduledMethods = new CopyOnWriteArrayList<>(); @Inject ScheduledExecutorService executor;