global barriere sem arrival = 1, departure = 0; int count = 0 op barrier(val int n) body barriere proc barrier (n) { # Ankunftsphase P (arrival); count += 1 if (count < n) { V(arrival) } else { V(departure) } # Abgangsphase P(departure); count -= 1 if (count > 0) { V(departure) } else { V(arrival) } } end barriere