Files @ a3c92705eeee
Branch filter:

Location: CSY/reowolf/testdata/parser/negative/8.pdl

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;

composite main(in a, out b) {
	channel c -> d;
	syncdrain(a, b);
}

// shadowing import
primitive syncdrain(in a, in b) {
	while (true) {
		synchronous {
			if (!fires(a) || !fires(b)) {
				block(a);
				block(b);
			}
		}
	}
}