add semaphore test