Files @ a3c92705eeee
Branch filter:

Location: CSY/reowolf/testdata/parser/positive/5.pdl - annotation

Christopher Esterhuyse
bugfix: native component branch forks that clash are MERGED rather than overwritten. Avoids race condition where (1) branch x ends and submits a solution, (2) branch y is created, has same predicate as x and overwrites it, but has a subset of its messages, (3) round ends in success but branch x is gone, so no suitable native branch is found
#version 100

import std.reo;
import std.buf;

primitive main(in a, out b) {
    while (true) {
        synchronous {
            if (fires(a) && fires(b)) {
                msg x = get(a);
                short y = readShort(x, 0);
                y++;
                writeShort(x, 0, y);
                put(b, x);
            } else {
                assert !fires(a) && !fires(b);
            }
        }
    }
}