code: private void trackTimeouts() {
          new ArrayList<>(httpRequestHolderList).forEach(httpRequestHolder -> {
  
              /* If it is handled then remove it from the list. */
              if (httpRequestHolder.request.isHandled()) {
                  httpRequestHolderList.remove(httpRequestHolder);
                  return;
              }
  
              /* Get the duration that this request has been around. */
              final long duration = time - httpRequestHolder.startTime;
  
              /* See if the duration is greater than the timeout time. */
              if (duration > timeOutIntervalMS) {
  
                  /* If we timed out, mark the request as handled, and then notify the client that the
                  backend timed out.
                   */
                  httpRequestHolder.request.handled();
  
                  /* Tell client that the backend timed out. */
                  httpRequestHolder.request.getReceiver().timeoutWithMessage(String.format("\"TIMEOUT %s %s %s\"",
                          httpRequestHolder.request.address(),
                          httpRequestHolder.request.getRemoteAddress(),
                          httpRequestHolder.startTime
                  ));
  
                  /* If we timed out then remove this from the list. */
                  httpRequestHolderList.remove(httpRequestHolder); //Not very fast if you a lot of outstanding requests
              }
          });
      }
docs: Tracks timeouts periodically if timeout tracking is enabled.