Skip to content

Commit 51b19c5

Browse files
committed
Change pingpong (set limit when benchmark done)
1 parent fc011f3 commit 51b19c5

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

TS/Savina/src/micro/PingPong.lf

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@
33
target TypeScript {
44
fast: true
55
};
6+
7+
import BenchmarkRunner from "../BenchmarkRunner.lf";
8+
69
reactor Ping(limit:number(100000)) {
710
input receive:number;
11+
input start;
812
output send:number;
913
state pingsLeft:number(limit);
10-
state startTime:time;
1114
logical action serve;
12-
logical action done;
13-
reaction (startup) -> send {=
15+
output done: boolean;
16+
reaction (start) -> send {=
1417
send = pingsLeft;
1518
pingsLeft -= 1;
16-
startTime = util.getCurrentPhysicalTime();
1719
=}
1820
reaction (serve) -> send {=
1921
send = pingsLeft;
@@ -23,25 +25,25 @@ reactor Ping(limit:number(100000)) {
2325
if (pingsLeft > 0) {
2426
actions.serve.schedule(0, null);
2527
} else {
26-
actions.done.schedule(0, null);
28+
pingsLeft = limit;
29+
done = true;
2730
}
2831
=}
29-
reaction (done) {=
30-
let elapsedTime = util.getCurrentPhysicalTime().subtract(startTime as TimeValue);
31-
console.log("Elapsed time: " + elapsedTime);
32-
util.requestStop();
33-
=}
3432
}
3533
reactor Pong {
3634
input receive:number;
3735
output send:number;
3836
reaction (receive) -> send {=
39-
send = receive as number;
37+
send = receive as number;
4038
=}
4139
}
42-
main reactor PingPong(limit:number(100000)) {
40+
main reactor PingPong(numIterations:number(12), limit:number(100000)) {
41+
runner = new BenchmarkRunner(numIterations = numIterations);
4342
ping = new Ping(limit = limit);
4443
pong = new Pong();
44+
45+
runner.start -> ping.start;
4546
ping.send -> pong.receive;
46-
pong.send -> ping.receive;
47+
pong.send -> ping.receive;
48+
ping.done -> runner.finish;
4749
}

0 commit comments

Comments
 (0)