Semaphore Barrier

This example demonstrates a reusable barrier 

The barrier uses a turnstile to synchronise the arrival of four tasks 
at a critical portion of the code.
A second exit turnstile resets the barrier so it can be reused 

For more details see   "The Little book of semaphores" Section 3.5

Working through the code in this example is a good way of testing your understanding 
of semaphores