Allow null or return an `Optional<Semaphore>` instance?