public void close() {
    closedLock.lock();
    try {
      if (!closed) {
        closed = true;
      } else {
        return;
      }
    } finally {
      closedLock.unlock();
    }
    for (ExecutorService executorService : asyncCloseExecutors.values()) {
      executorService.shutdown();
    }
    asyncCloseExecutors.clear();
  }
Call close when you are all done with your socket closer. If you call asyncClose after close is
called then the asyncClose will be done synchronously.
geode-core/src/main/java/org/apache/geode/internal/net/SocketCloser.java