/** * Switch to request timeout mode. */ private void disableTimeout() { final ThreadAttachment attachment = obtainAndSetThreadAttachment(); attachment.setIdleTimeoutDelay(SelectionKeyAttachment.UNLIMITED_TIMEOUT); }
public static void updateIdleTimeOutDelay(SelectionKey selectionKey, Response.ResponseAttachment suspendedResponse) { Object attachment = selectionKey.attachment(); if (attachment != null) { suspendedResponse.resetTimeout(); final ThreadAttachment threadAttachment = (ThreadAttachment) attachment; threadAttachment.setIdleTimeoutDelay(suspendedResponse.getIdleTimeoutDelay()); } }
/** * Switch back to keep-alive timeout mode. */ private void enableTimeout() { final ThreadAttachment attachment = obtainAndSetThreadAttachment(); attachment.setIdleTimeoutDelay(SelectionKeyAttachment.UNSET_TIMEOUT); attachment.setTimeout(System.currentTimeMillis()); }
public static void detach(SelectionKey selectionKey) { final Object attachment = selectionKey.attachment(); if (attachment != null && attachment instanceof ThreadAttachment) { final ThreadAttachment threadAttachment = (ThreadAttachment) attachment; threadAttachment.removeAttribute(SUSPENDED_RESPONSE_ATTR); threadAttachment.setIdleTimeoutDelay(SelectionKeyAttachment.UNSET_TIMEOUT); threadAttachment.setTimeoutListener(null); threadAttachment.setKeySelectionListener(null); } }
public static void attach(SelectionKey selectionKey, Response.ResponseAttachment suspendedResponse) { Object attachment = selectionKey.attachment(); if (attachment == null || !(attachment instanceof ThreadAttachment)) { attachment = obtainThreadAttachment(); selectionKey.attach(attachment); } final ThreadAttachment threadAttachment = (ThreadAttachment) attachment; suspendedResponse.setThreadAttachment(threadAttachment); suspendedResponse.resetTimeout(); threadAttachment.setIdleTimeoutDelay(suspendedResponse.getIdleTimeoutDelay()); threadAttachment.setTimeoutListener(suspendedResponse); threadAttachment.setKeySelectionListener(suspendedResponse); threadAttachment.setAttribute(SUSPENDED_RESPONSE_ATTR, suspendedResponse); }