Files
@ 0de39654770f
Branch filter:
Location: CSY/reowolf/testdata/parser/positive/18.pdl - annotation
0de39654770f
545 B
text/plain
WIP: Closing ports
1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 2982ea49738a 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 2982ea49738a 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 1b7b852c3395 | #version 100
import std.reo;
composite main() {}
primitive main1(in a, out c) {
int x = 0;
int y = 0;
msg z = null;
msg w = null;
x = 1;
y = 1;
while (true) {
sync {
if (x > 0 && fires(a)) {
z = get(a);
x--;
}
if (w != null && fires(c)) {
put(c, w);
w = null;
y++;
}
}
sync {
assert !fires(a) && !fires(c);
if (z != null && y > 0) {
w = z;
z = null;
y--;
x++;
}
}
}
}
composite main2(in a, out c) {
channel xo -> xi;
new fifo(a, xo, null);
new fifo(xi, c, null);
}
|