Files @ 9f8f7a65f90d
Branch filter:

Location: CSY/reowolf/testdata/parser/positive/14.pdl

Christopher Esterhuyse
simplified setup procedure's reconnection business. got rid of the finicky waker and waker token, instead relying on simple arithmetic for the timeout. more doc comments in setup and endpoint modules
#version 100

composite main(out c) {
	channel ao -> ai;
    channel bo -> bi;
	new sync(ai, bo);
	new binary_replicator(bi, ao, c);
}

primitive sync(in a, out b) {
    while (true) {
        synchronous {
            if (fires(a) && fires(b)) {
            	msg x = get(a);
            	put(b, x);
            } else {
                assert !fires(a) && !fires(b);
            }
        }
    }
}

primitive binary_replicator(in b, out a, out c) {
    while (true) {
        synchronous {
            if (fires(b) && fires(a) && fires(c)) {
                msg x = get(b);
                put(a, x);
                put(c, x);
            } else {
                assert !fires(a) && !fires(b) && !fires(c);
            }
        }
    }
}