updated semaphore