semaphore_machine