Download pseudo source code

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
procedure main()
  shared a1_ready := create_semaphore(0)
  shared b1_ready := create_semaphore(0)
  create_thread(thread_a)
  create_thread(thread_b)
end procedure

procedure thread_a()
  statement a1
  wait(b1_ready)
  signal(a1_ready)
  statement a2
end procedure

procedure thread_b()
  statement b1
  signal(b1_ready)
  wait(a1_ready)
  statement b2
end procedure