fa4d55832f18c9bd331f69e6d08637c6e40a6210
[Mograsim.git] / plugins / net.mograsim.plugin.core / src / net / mograsim / plugin / util / SingleSWTRequest.java
1 package net.mograsim.plugin.util;
2
3 import java.util.concurrent.atomic.AtomicBoolean;
4
5 import org.eclipse.swt.widgets.Display;
6
7 public class SingleSWTRequest
8 {
9         private AtomicBoolean waiting = new AtomicBoolean();
10
11         public void request(Runnable request)
12         {
13                 synchronized (waiting)
14                 {
15                         if (!waiting.get())
16                         {
17                                 waiting.set(true);
18                                 Display.getDefault().asyncExec(() ->
19                                 {
20                                         synchronized (waiting)
21                                         {
22                                                 waiting.set(false);
23                                                 request.run();
24                                         }
25                                 });
26                         }
27                 }
28         }
29 }