Skip to content

Instantly share code, notes, and snippets.

class Ticketing {
Entering: array [1..N] of boolean = {false};
Number: array [1..N] of integer = {0};
void lock(integer i) {
Entering[i] = true;
Number[i] = 1 + max(Number[1], ..., Number[N]);
Entering[i] = false;
for (j = 1; j <= N; j++) {
// Wait until thread j receives its number: