Download c source code

shared a1ready := semaphore(0)
shared b1ready := semaphore(0)

main:
	create_thread(thread_a, 1)
	create_thread(thread_b)

thread_a:
	statement a1
	signal(a1ready)
	wait(b1ready)
	statement a2

thread_b:
	statement b1
	wait(a1ready)
	signal(b1ready)
	statement b2