Chapter 3 - Recipe #1: Controlling concurrent access to a resource - binary semaphore