X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Futil%2FSingleSWTRequest.java;fp=plugins%2Fnet.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Futil%2FSingleSWTRequest.java;h=c4a1eee3e959cb9566ffc42313835e790ed24f5e;hb=ff24f544796d5cc8898c6353d479b7eb3662e86f;hp=fa4d55832f18c9bd331f69e6d08637c6e40a6210;hpb=11e2aef0171915b9c789b6f1b68ba41eef7e3d92;p=Mograsim.git 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(); } }); }