public boolean cleanup() {
    if (isClosed()) {
      return false;
    }
    if (communicationMode.isWAN() || communicationMode.isCountedAsClientServerConnection()) {
      getAcceptor().decClientServerConnectionCount();
    }

    if (!theSocket.isClosed()) {
      // Here we direct closing of sockets to one of two executors. Use of an executor
      // keeps us from causing an explosion of new threads when a server is shut down.
      // Background threads are used in case the close() operation on the socket hangs.
      final String closerName =
          communicationMode.isWAN() ? "WANSocketCloser" : "CacheServerSocketCloser";
      acceptor.getSocketCloser().asyncClose(theSocket, closerName, () -> {
      },
          this::cleanupAfterSocketClose);
      return true;
    }
    cleanupAfterSocketClose();
    return true;
  }
Returns the client's read-timeout setting. This is used in the client health monitor to timeout
connections that have taken too long & the client will have already given up waiting for a
response. Certain messages also may include an override to the normal read-timeout, such as a
query or a putAll.
geode-core/src/main/java/org/apache/geode/internal/cache/tier/sockets/ServerConnection.java