@Override protected void writeOP(SelectionKey key) throws IOException { RapidoidConnection conn = (RapidoidConnection) key.attachment(); SocketChannel socketChannel = (SocketChannel) key.channel(); checkOnSameThread(); try { int wrote = conn.output.writeTo(socketChannel); conn.output.deleteBefore(wrote); boolean complete = conn.output.size() == 0; if (conn.closeAfterWrite() && complete) { close(conn); } else { if (complete) { key.interestOps(SelectionKey.OP_READ); } else { key.interestOps(SelectionKey.OP_READ + SelectionKey.OP_WRITE); } conn.wrote(complete); } } catch (IOException e) { close(conn); } }