// How many threads have arrived to the barrier shared count := 0 // Protects the increment of the count shared can_access_count := semaphore(1) // Locked (0) until all threads arrive, then it is unlocked (1) shared barrier := semaphore(0) main: thread_count := read_integer() create_threads(thread_count, secondary) secondary: Statement A // Adapt rendezvous solution here wait(can_access_count) count := count + 1 if count = thread_count then for index := 0 to thread_count do signal(barrier) end for end if signal(can_access_count) wait(barrier) Statement B