semaphore demo