19.2.6 Worked Examples: Semaphores