private <T> LockAndQueue getLock(Map<T, LockAndQueue> map, T key) {
    LockAndQueue lock = map.get(key);
    if (lock == null) {
      lock = new LockAndQueue(procedureRetriever);
      map.put(key, lock);
    }
    return lock;
  }
<p>
Locks on namespaces, tables, and regions.
</p>
<p>
Since LockAndQueue implementation is NOT thread-safe, schedLock() guards all calls to these
locks.
</p>
hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/SchemaLocking.java