docs: @Override
      public void run() {
          Throwable thrown = null;
          try {
              if (state == COMPLETELY_CLOSED)
                  return;
              try {
                  LOG.error("{} is not closed manually, cleaned up from Cleaner",
                          chronicleHashIdentityString);
              } catch (Throwable t) {
                  thrown = t;
              } finally {
                  synchronized (this) {
                      if (state == COMPLETELY_CLOSED) {
                          LOG.error("Somebody closed {} while it is processed by Cleaner, " +
                                  "this should be impossible", chronicleHashIdentityString);
                      } else {
                          thrown = Throwables.returnOrSuppress(thrown, releaseEverything(true));
                      }
                  }
                  if (thrown != null) {
                      try {
                          LOG.error("Error on releasing resources of " + chronicleHashIdentityString,
                                  thrown);
                      } catch (Throwable t) {
                          // This may occur if we are in shutdown hooks, and the log service has
                          // already been shut down. Try to fall back to printStackTrace().
                          thrown.addSuppressed(t);
                          thrown.printStackTrace();
                      }
                  }
              }
          } catch (Throwable ignore) {
              // Just don't fail anyway. We will have another attempt to close this ChronicleMap from
              // ChronicleHashCloseOnExitHook.
          }
      }