From ff24f544796d5cc8898c6353d479b7eb3662e86f Mon Sep 17 00:00:00 2001 From: Fabian Stemmler Date: Tue, 1 Oct 2019 02:42:21 +0200 Subject: [PATCH] SingleSWTRequest utility class now actually does what it is supposed to --- .../src/net/mograsim/plugin/util/SingleSWTRequest.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/util/SingleSWTRequest.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/util/SingleSWTRequest.java index fa4d5583..c4a1eee3 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/util/SingleSWTRequest.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/util/SingleSWTRequest.java @@ -4,14 +4,20 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.eclipse.swt.widgets.Display; +/** + * A utility class that requests the asynchronous execution of a Runnable in the SWT Thread. Making a new request before the old one is + * processed will override the old request. + */ public class SingleSWTRequest { private AtomicBoolean waiting = new AtomicBoolean(); + private Runnable request; public void request(Runnable request) { synchronized (waiting) { + this.request = request; if (!waiting.get()) { waiting.set(true); @@ -20,7 +26,7 @@ public class SingleSWTRequest synchronized (waiting) { waiting.set(false); - request.run(); + this.request.run(); } }); } -- 2.17.1