## Exercise 3

 1. The barrier provided by the operating system is quite smart:
    threads that wait are sleeping, not busy-waiting, making the
    entire program more efficient.
 2. But in principle, a barrier is very simple. Let's try to make
    one ourselves.
 3. Write a C program which only uses mutexes and shared variables
    to implement a barrier.
 4. The waiting threads can busy-wait.

That's the last exercise for today, the homework is, as usual, in
‹hw.txt›.
