system NWorkers {
const PARAM { N = 2; M = 1; }
int resources := PARAM.M;
active[PARAM.N] thread Worker() {
loc loc0:
when resources > 0 do {
resources := resources - 1;
} goto loc1;
loc loc1:
do {
resources := resources + 1;
} goto loc0;
do { /* empty */ } goto loc0;
}
}
|