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()\r
        {\r
                AtomicBoolean running = new AtomicBoolean(true);\r
- //            Thread simulationThread = new Thread(() ->\r
- //            {\r
- //                    while (running.get())\r
- //                    {\r
- //                            // always execute to keep timeline from "hanging behind" for too long\r
- //                            timeline.executeUntil(timeline.laterThan(System.currentTimeMillis()), System.currentTimeMillis() + 10);         \r
- //                            model.timeline.executeUpTo(System.currentTimeMillis(), System.currentTimeMillis() + 10);\r
- //                            long sleepTime;\r
- //                            if (model.timeline.hasNext())\r
- //                                    sleepTime = model.timeline.nextEventTime() - System.currentTimeMillis();\r
- //                            else\r
- //                                    sleepTime = 10;\r
- //                            try\r
- //                            {\r
- //                                    if (sleepTime > 0)\r
- //                                            Thread.sleep(sleepTime);\r
- //                            }\r
- //                            catch (InterruptedException e)\r
- //                            {\r
- //                            } // it is normal execution flow to be interrupted\r
- //                    }\r
- //            });\r
- //            simulationThread.start();\r
- //            model.timeline.addEventAddedListener(event ->\r
- //            {\r
- //                    if (event.getTiming() <= System.currentTimeMillis())\r
- //                            simulationThread.interrupt();\r
- //            });\r
+               Thread simulationThread = new Thread(() ->\r
+               {\r
+                       while (running.get())\r
+                       {\r
+                               // always execute to keep timeline from "hanging behind" for too long\r
 -                              timeline.executeUpTo(System.currentTimeMillis(), System.currentTimeMillis() + 10);\r
++                              timeline.executeUntil(timeline.laterThan(System.currentTimeMillis()), System.currentTimeMillis() + 10);\r
+                               long sleepTime;\r
+                               if (timeline.hasNext())\r
+                                       sleepTime = timeline.nextEventTime() - System.currentTimeMillis();\r
+                               else\r
+                                       sleepTime = 10;\r
+                               try\r
+                               {\r
+                                       if (sleepTime > 0)\r
+                                               Thread.sleep(sleepTime);\r
+                               }\r
+                               catch (InterruptedException e)\r
+                               {\r
+                               } // it is normal execution flow to be interrupted\r
+                       }\r
+               });\r
+               simulationThread.start();\r
+               timeline.addEventAddedListener(event ->\r
+               {\r
+                       if (event.getTiming() <= System.currentTimeMillis())\r
+                               simulationThread.interrupt();\r
+               });\r
  \r
                shell.open();\r
                while (!shell.isDisposed())\r