private static ThreadAttachment obtainThreadAttachment() { final Thread currentThread = Thread.currentThread(); if (currentThread instanceof WorkerThread) { return ((WorkerThread) currentThread).getAttachment(); } return new KeepAliveThreadAttachment(); }
private void saveParser(SelectionKey key, ProtocolParser parser) { WorkerThread workerThread = (WorkerThread) Thread.currentThread(); // Detach the current Thread data. ThreadAttachment threadAttachment = workerThread.getAttachment(); threadAttachment.setAttribute(ProtocolParser.PARSER, parser); // Attach it to the SelectionKey so the it can be resumed latter. key.attach(threadAttachment); }
private static ThreadAttachment obtainThreadAttachment() { final Thread currentThread = Thread.currentThread(); if (currentThread instanceof WorkerThread) { return ((WorkerThread) currentThread).getAttachment(); } return new ThreadAttachment(); }
private static void notifyRemotelyClosed(SelectionKey key) { if (Thread.currentThread() instanceof WorkerThread) { ConnectionCloseHandlerNotifier notifier = (ConnectionCloseHandlerNotifier) ((WorkerThread) Thread.currentThread()).getAttachment().getAttribute("ConnectionCloseHandlerNotifier"); if (notifier != null) { notifier.notifyRemotlyClose(key); } } }
private KeepAliveThreadAttachment getKeepAliveAttachment() { final Thread t = Thread.currentThread(); if (t instanceof WorkerThread) { final WorkerThread workerThread = (WorkerThread) t; final KeepAliveThreadAttachment threadAttachment = (KeepAliveThreadAttachment) workerThread.getAttachment(); key.attach(threadAttachment); return threadAttachment; } final Object attachment = key.attachment(); if (attachment != null) { return (KeepAliveThreadAttachment) attachment; } final KeepAliveThreadAttachment threadAttachment = new KeepAliveThreadAttachment(); threadAttachment.associate(); key.attach(threadAttachment); return threadAttachment; }
ConnectionCloseHandler cch = (ConnectionCloseHandler) ((WorkerThread)Thread.currentThread()) .getAttachment().getAttribute("ConnectionCloseHandler"); if (cch != null){ cch.remotlyClosed(key);
ConnectionCloseHandler cch = (ConnectionCloseHandler) ((WorkerThread)Thread.currentThread()) .getAttachment().getAttribute("ConnectionCloseHandler"); if (cch != null){ cch.remotlyClosed(key);
ConnectionCloseHandler cch = (ConnectionCloseHandler) ((WorkerThread)Thread.currentThread()) .getAttachment().getAttribute("ConnectionCloseHandler"); if (cch != null){ cch.remotlyClosed(key);
ConnectionCloseHandlerNotifier notifier = (ConnectionCloseHandlerNotifier) ((WorkerThread)Thread.currentThread()) .getAttachment().getAttribute("ConnectionCloseHandlerNotifier"); if (notifier != null){ notifier.notifyRemotlyClose(key);
private void saveSecuredBufferRemainders(SelectionKey selectionKey) { ThreadAttachment attachment = (ThreadAttachment) selectionKey.attachment(); WorkerThread workerThread = (WorkerThread) Thread.currentThread(); if (attachment == null || workerThread.getAttachment() != attachment) { Controller.logger().log(Level.FINE, "SelectionKey ThreadAttachment is NULL or doesn't " + "correspond to the current thread, when saving buffers"); return; } ByteBuffer inputBB = workerThread.getInputBB(); if (inputBB != null && inputBB.hasRemaining()) { workerThread.updateAttachment(attachment.getMode() | Mode.INPUT_BB); } else { workerThread.updateAttachment(attachment.getMode() & (Integer.MAX_VALUE ^ Mode.INPUT_BB)); } ByteBuffer outputBB = workerThread.getOutputBB(); if (outputBB != null && outputBB.hasRemaining()) { workerThread.updateAttachment(attachment.getMode() | Mode.OUTPUT_BB); } else { workerThread.updateAttachment(attachment.getMode() & (Integer.MAX_VALUE ^ Mode.OUTPUT_BB)); } }
ctx.getSelectionKey().attach(null); } else { wt.getAttachment().setTimeout(null);
kh.setKey(key); WorkerThread workerThread = (WorkerThread) Thread.currentThread(); ThreadAttachment attachment = workerThread.getAttachment(); attachment.setMode(Mode.STORE_ALL); kh.setThreadAttachment(workerThread.detach());