From: Fabian Stemmler Date: Tue, 1 Oct 2019 00:42:21 +0000 (+0200) Subject: SingleSWTRequest utility class now actually does what it is supposed to X-Git-Url: https://mograsim.net/gitweb/?p=Mograsim.git;a=commitdiff_plain;h=ff24f544796d5cc8898c6353d479b7eb3662e86f SingleSWTRequest utility class now actually does what it is supposed to --- 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(); } }); }