1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
shared a1_ready := semaphore(0)
shared b1_ready := semaphore(0)
main:
create_thread(thread_a, 1)
create_thread(thread_b, 1)
thread_a:
statement a1
signal(a1_ready);
wait(b1_ready);
statement a2
thread_b:
statement b1
wait(a1_ready);
signal(b1_ready);
statement b2