Here is information you need. After creating a semaphore your program calls one of the wait functions to gain access to it. When the ReleaseSemaphore() is canned another thread that is waiting will be released.
I told Santa what I wanted for Christmas and he washed my mouth out with soap.