Merge branch 'development' of
authorFabian Stemmler <stemmler@in.tum.de>
Wed, 29 May 2019 16:07:52 +0000 (18:07 +0200)
committerFabian Stemmler <stemmler@in.tum.de>
Wed, 29 May 2019 16:07:52 +0000 (18:07 +0200)
https://gitlab.lrz.de/lrr-tum/students/eragp-misim-2019 into development

# Conflicts:
# LogicUI/src/era/mi/gui/LogicUIStandalone.java

1  2 
LogicUI/src/era/mi/gui/LogicUIStandalone.java

@@@ -50,34 -60,33 +60,33 @@@ public class LogicUIStandalon
        public void run()
        {
                AtomicBoolean running = new AtomicBoolean(true);
- //            Thread simulationThread = new Thread(() ->
- //            {
- //                    while (running.get())
- //                    {
- //                            // always execute to keep timeline from "hanging behind" for too long
- //                            timeline.executeUntil(timeline.laterThan(System.currentTimeMillis()), System.currentTimeMillis() + 10);         
- //                            model.timeline.executeUpTo(System.currentTimeMillis(), System.currentTimeMillis() + 10);
- //                            long sleepTime;
- //                            if (model.timeline.hasNext())
- //                                    sleepTime = model.timeline.nextEventTime() - System.currentTimeMillis();
- //                            else
- //                                    sleepTime = 10;
- //                            try
- //                            {
- //                                    if (sleepTime > 0)
- //                                            Thread.sleep(sleepTime);
- //                            }
- //                            catch (InterruptedException e)
- //                            {
- //                            } // it is normal execution flow to be interrupted
- //                    }
- //            });
- //            simulationThread.start();
- //            model.timeline.addEventAddedListener(event ->
- //            {
- //                    if (event.getTiming() <= System.currentTimeMillis())
- //                            simulationThread.interrupt();
- //            });
+               Thread simulationThread = new Thread(() ->
+               {
+                       while (running.get())
+                       {
+                               // always execute to keep timeline from "hanging behind" for too long
 -                              timeline.executeUpTo(System.currentTimeMillis(), System.currentTimeMillis() + 10);
++                              timeline.executeUntil(timeline.laterThan(System.currentTimeMillis()), System.currentTimeMillis() + 10);
+                               long sleepTime;
+                               if (timeline.hasNext())
+                                       sleepTime = timeline.nextEventTime() - System.currentTimeMillis();
+                               else
+                                       sleepTime = 10;
+                               try
+                               {
+                                       if (sleepTime > 0)
+                                               Thread.sleep(sleepTime);
+                               }
+                               catch (InterruptedException e)
+                               {
+                               } // it is normal execution flow to be interrupted
+                       }
+               });
+               simulationThread.start();
+               timeline.addEventAddedListener(event ->
+               {
+                       if (event.getTiming() <= System.currentTimeMillis())
+                               simulationThread.interrupt();
+               });
  
                shell.open();
                while (!shell.isDisposed())