diff --git a/src/main/java/com/aparapi/internal/kernel/KernelPreferences.java b/src/main/java/com/aparapi/internal/kernel/KernelPreferences.java index d8cc685d678c013cc71b0f86b4d6c9c85d58dd58..28f307dcf0ceca674e486949e5d22daae56b0dc9 100644 --- a/src/main/java/com/aparapi/internal/kernel/KernelPreferences.java +++ b/src/main/java/com/aparapi/internal/kernel/KernelPreferences.java @@ -84,10 +84,12 @@ public class KernelPreferences { } private void maybeSetUpDefaultPreferredDevices() { - preferredDevices.compareAndSet(null, new LinkedList<>(manager.getDefaultPreferences().getPreferredDevices(null))); + if (preferredDevices.get() == null) { + preferredDevices.compareAndSet(null, new LinkedList<>(manager.getDefaultPreferences().getPreferredDevices(null))); + } } - public List<Device> getFailedDevices() { + public synchronized List<Device> getFailedDevices() { return new ArrayList<>(failedDevices); } }