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
            }
        });
    }
private void trackTimeouts() {
        new ArrayList<>(httpRequestHolderList).forEach(httpRequestHolder -> {

            
            if (httpRequestHolder.request.isHandled()) {
                httpRequestHolderList.remove(httpRequestHolder);
                return;
            }

            
            final long duration = time - httpRequestHolder.startTime;

            
            if (duration > timeOutIntervalMS) {

                
                httpRequestHolder.request.handled();

                
                httpRequestHolder.request.getReceiver().timeoutWithMessage(String.format("\"TIMEOUT %s %s %s\"",
                        httpRequestHolder.request.address(),
                        httpRequestHolder.request.getRemoteAddress(),
                        httpRequestHolder.startTime
                ));

                
                httpRequestHolderList.remove(httpRequestHolder); 
            }
        });
    }
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 } } ) ; }
Tracks timeouts periodically if timeout tracking is enabled.
Tracks timeouts periodically if timeout tracking is enabled .