diff --git a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java index 238ba1d..24dc854 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java +++ b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java @@ -566,6 +566,7 @@ public class Controller_Frontend extends PICComponent implements FrontendControl @Override public void initialize(PICComponentLocator locator) { super.initialize(locator); + executionTime.registerObserver(this); this.picComponents = locator; System.out.println("Frontend"); } diff --git a/src/main/java/fabrik/simulator/pic16f84/EEPROM.java b/src/main/java/fabrik/simulator/pic16f84/EEPROM.java index 5a341e1..06ea13c 100644 --- a/src/main/java/fabrik/simulator/pic16f84/EEPROM.java +++ b/src/main/java/fabrik/simulator/pic16f84/EEPROM.java @@ -174,6 +174,7 @@ public class EEPROM extends PICComponent implements EEPROMInterface, ExecutionTi @Override public void initialize(PICComponentLocator locator) { super.initialize(locator); + executionTime.registerObserver(this); } @Override diff --git a/src/main/java/fabrik/simulator/pic16f84/ExecutionTimeSubject.java b/src/main/java/fabrik/simulator/pic16f84/ExecutionTimeSubject.java index 6b2dff2..f5fe308 100644 --- a/src/main/java/fabrik/simulator/pic16f84/ExecutionTimeSubject.java +++ b/src/main/java/fabrik/simulator/pic16f84/ExecutionTimeSubject.java @@ -24,29 +24,8 @@ public abstract class ExecutionTimeSubject extends PICComponent implements PICCo } protected void notifyObservers(){ - for (final ExecutionTimeObserver each : observers){ - notify(each); - } - } - - protected void notify(final ExecutionTimeObserver observer) { - createNotifierFor(observer).start(); - } - - - protected Thread createNotifierFor(ExecutionTimeObserver observer) { - return new Thread(){ - public void run(){ - try { - observer.executionTimeChanged(); - } catch (Exception e){ - e.printStackTrace(); - ExecutionTimeSubject.this.observers.remove(observer); - } - } - }; - } - + observers.forEach(o -> o.executionTimeChanged()); + } public double getTotalExecutionTime(){ throw new UnsupportedOperationException("No class implements ExecutionTimeSubject correctly!"); diff --git a/src/main/java/fabrik/simulator/pic16f84/Timer.java b/src/main/java/fabrik/simulator/pic16f84/Timer.java index 2061309..a6e7773 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Timer.java +++ b/src/main/java/fabrik/simulator/pic16f84/Timer.java @@ -67,6 +67,7 @@ public class Timer extends PICComponent implements TimerInterface, ExecutionTime @Override public void initialize(PICComponentLocator locator) { super.initialize(locator); + executionTime.registerObserver(this); } @Override