docs: public boolean lockContextLocally(ChronicleHash<?, ?, ?, ?> hash) {
          // hash().isOpen() check guarantees no starvation of a thread calling chMap.close() and
          // trying to close this context by closeContext() method below, while the thread owning this
          // context frequently locks and unlocks it (e. g. in a loop). This is also the only check
          // for chMap openness during the whole context usage lifecycle.
          if (hash.isOpen() && MEMORY.compareAndSwapInt(this, CONTEXT_LOCK_OFFSET,
                  CONTEXT_UNLOCKED, CONTEXT_LOCKED_LOCALLY)) {
              return true;
          } else {
              if (contextLock == CONTEXT_LOCKED_LOCALLY)
                  return false;
              // Don't extract this hash().isOpen() and the one above, because they could return
              // different results: the first (above) could return true, the second (below) - false.
              if (contextLock == CONTEXT_CLOSED || !hash.isOpen())
                  throw new ChronicleHashClosedException(hash);
              throw new AssertionError("Unknown context lock state: " + contextLock);
          }
      }