Use a busyLock instead of a semaphore.