a semaphore can wait for infinity