projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Quick fix for MemoryEditor CellEditor using the wrong Font
[Mograsim.git]
/
plugins
/
net.mograsim.plugin.core
/
src
/
net
/
mograsim
/
plugin
/
launch
/
MachineDebugTarget.java
diff --git
a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/launch/MachineDebugTarget.java
b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/launch/MachineDebugTarget.java
index
5a13401
..
ad0441b
100644
(file)
--- a/
plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/launch/MachineDebugTarget.java
+++ b/
plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/launch/MachineDebugTarget.java
@@
-27,30
+27,40
@@
import net.mograsim.logic.model.LogicExecuter;
import net.mograsim.machine.Machine;
import net.mograsim.machine.MachineDefinition;
import net.mograsim.plugin.MograsimActivator;
import net.mograsim.machine.Machine;
import net.mograsim.machine.MachineDefinition;
import net.mograsim.plugin.MograsimActivator;
+import net.mograsim.plugin.launch.MachineLaunchConfigType.MachineLaunchParams;
public class MachineDebugTarget extends PlatformObject implements IDebugTarget, IMemoryBlockRetrievalExtension
{
public class MachineDebugTarget extends PlatformObject implements IDebugTarget, IMemoryBlockRetrievalExtension
{
+ private final static boolean USE_PSEUDO_THREAD = true;
+
private final ILaunch launch;
private final Machine machine;
private final LogicExecuter exec;
private final ILaunch launch;
private final Machine machine;
private final LogicExecuter exec;
+ private final MachineThread thread;
private boolean running;
private final List<Consumer<Double>> executionSpeedListeners;
private boolean running;
private final List<Consumer<Double>> executionSpeedListeners;
- public MachineDebugTarget(ILaunch launch, MachineDefinition machineDefinition)
+ private final MachineLaunchParams launchParams;
+
+ public MachineDebugTarget(ILaunch launch, MachineLaunchParams launchParams, MachineDefinition machineDefinition)
{
this.launch = launch;
this.machine = machineDefinition.createNew();
this.exec = new LogicExecuter(machine.getTimeline());
this.executionSpeedListeners = new ArrayList<>();
{
this.launch = launch;
this.machine = machineDefinition.createNew();
this.exec = new LogicExecuter(machine.getTimeline());
this.executionSpeedListeners = new ArrayList<>();
+ this.launchParams = launchParams;
exec.startLiveExecution();
running = true;
getLaunch().addDebugTarget(this);
fireCreationEvent();
exec.startLiveExecution();
running = true;
getLaunch().addDebugTarget(this);
fireCreationEvent();
+
+ // create after creating ourself
+ this.thread = USE_PSEUDO_THREAD ? new MachineThread(this) : null;
}
public Machine getMachine()
}
public Machine getMachine()
@@
-82,6
+92,11
@@
public class MachineDebugTarget extends PlatformObject implements IDebugTarget,
return launch;
}
return launch;
}
+ public MachineLaunchParams getLaunchParams()
+ {
+ return launchParams;
+ }
+
public double getExecutionSpeed()
{
return exec.getSpeedFactor();
public double getExecutionSpeed()
{
return exec.getSpeedFactor();
@@
-232,13
+247,13
@@
public class MachineDebugTarget extends PlatformObject implements IDebugTarget,
@Override
public boolean hasThreads() throws DebugException
{
@Override
public boolean hasThreads() throws DebugException
{
- return
false
;
+ return
USE_PSEUDO_THREAD
;
}
@Override
public IThread[] getThreads() throws DebugException
{
}
@Override
public IThread[] getThreads() throws DebugException
{
- return
new IThread[0]
;
+ return
thread == null ? new IThread[0] : new IThread[] { thread }
;
}
public void addExecutionSpeedListener(Consumer<Double> executionSpeedListener)
}
public void addExecutionSpeedListener(Consumer<Double> executionSpeedListener)