if the semaphore is null, skip the acquire()