65 lines
1.0 KiB
Plaintext
65 lines
1.0 KiB
Plaintext
process main {
|
|
var("hello") x;
|
|
provide("A");
|
|
depend("A") d;
|
|
val_equal(d.x, "hello") a;
|
|
assert(a);
|
|
d.x->set("world");
|
|
val_equal(d.x, "world") a;
|
|
assert(a);
|
|
|
|
var("hello") x;
|
|
provide("B");
|
|
val_equal(x, "world") a;
|
|
assert(a);
|
|
|
|
var("hello") x;
|
|
provide("C");
|
|
val_equal(x, "hello") a;
|
|
assert(a);
|
|
depend("C_done");
|
|
val_equal(x, "world") a;
|
|
assert(a);
|
|
|
|
var("hello") x;
|
|
blocker() blk;
|
|
provide("D");
|
|
val_equal(x, "hello") a;
|
|
assert(a);
|
|
blk->up();
|
|
val_equal(x, "0") a;
|
|
assert(a);
|
|
blk->down();
|
|
blk->up();
|
|
val_equal(x, "1") a;
|
|
assert(a);
|
|
|
|
exit("0");
|
|
}
|
|
|
|
process proc1 {
|
|
depend("B") dep;
|
|
dep.x->set("world");
|
|
}
|
|
|
|
process proc2 {
|
|
depend("C") dep;
|
|
sleep("0", "0");
|
|
dep.x->set("world");
|
|
provide("C_done");
|
|
}
|
|
|
|
process proc3 {
|
|
depend("D") dep;
|
|
dep.blk->use();
|
|
provide("E");
|
|
}
|
|
|
|
process proc4 {
|
|
var("0") i;
|
|
depend("E") dep;
|
|
dep.dep.x->set(i);
|
|
num_add(i, "1") j;
|
|
i->set(j);
|
|
}
|