Skip to content

Commit

Permalink
Avoid initializing TraceActorCreationNode if tracing is not enabled
Browse files Browse the repository at this point in the history
Signed-off-by: Stefan Marr <git@stefan-marr.de>
  • Loading branch information
smarr committed Apr 15, 2020
1 parent 4122590 commit f21d959
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/som/primitives/actors/CreateActorPrim.java
Expand Up @@ -30,7 +30,8 @@
public abstract class CreateActorPrim extends BinarySystemOperation {
@Child protected IsValue isValue = IsValueNodeGen.createSubNode();
@Child protected ExceptionSignalingNode notAValue;
@Child protected TraceActorCreationNode trace = new TraceActorCreationNode();

@Child protected TraceActorCreationNode trace = TraceActorCreationNode.create();

@Override
public final CreateActorPrim initialize(final VM vm) {
Expand Down
11 changes: 11 additions & 0 deletions src/tools/replay/nodes/TraceActorCreationNode.java
@@ -1,5 +1,6 @@
package tools.replay.nodes;

import som.vm.VmSettings;
import tools.concurrency.TracingActors.TracingActor;
import tools.replay.TraceRecord;
import tools.replay.nodes.RecordEventNodes.RecordOneEvent;
Expand All @@ -9,7 +10,17 @@ public final class TraceActorCreationNode extends TraceNode {
@Child protected RecordOneEvent roe =
new RecordOneEvent(TraceRecord.ACTOR_CREATION);

private TraceActorCreationNode() {}

public void trace(final TracingActor actor) {
roe.record(actor.getId());
}

public static TraceActorCreationNode create() {
if (VmSettings.ACTOR_TRACING) {
return new TraceActorCreationNode();
} else {
return null;
}
}
}

0 comments on commit f21d959

Please sign in to comment.