public XnioWorker getWorker() { return WorkerThread.this.getWorker(); }
public XnioWorker getWorker() { return getWorkerThread().getWorker(); }
public XnioWorker getWorker() { return getWorkerThread().getWorker(); }
public XnioWorker getWorker() { return getWorkerThread().getWorker(); }
WorkerThread getNextThread() { final WorkerThread[] all = getWorker().getAll(); final int number = getNumber(); if (number == all.length - 1) { return all[0]; } else { return all[number + 1]; } }
private static WorkerThread getPeerThread(final XnioIoFactory peer) throws ClosedWorkerException { final WorkerThread peerThread; if (peer instanceof NioXnioWorker) { final NioXnioWorker peerWorker = (NioXnioWorker) peer; peerWorker.checkShutdown(); peerThread = peerWorker.chooseThread(); } else if (peer instanceof WorkerThread) { peerThread = (WorkerThread) peer; peerThread.getWorker().checkShutdown(); } else { throw log.notNioProvider(); } return peerThread; }
log.tracef("Shutting down channel thread \"%s\"", this); safeClose(selector); getWorker().closeResource();
protected IoFuture<StreamConnection> openTcpStreamConnection(final InetSocketAddress bindAddress, final InetSocketAddress destinationAddress, final ChannelListener<? super StreamConnection> openListener, final ChannelListener<? super BoundChannel> bindListener, final OptionMap optionMap) { try { getWorker().checkShutdown(); } catch (ClosedWorkerException e) { return new FailedIoFuture<StreamConnection>(e);
protected IoFuture<StreamConnection> acceptTcpStreamConnection(final InetSocketAddress destination, final ChannelListener<? super StreamConnection> openListener, final ChannelListener<? super BoundChannel> bindListener, final OptionMap optionMap) { try { getWorker().checkShutdown(); } catch (ClosedWorkerException e) { return new FailedIoFuture<StreamConnection>(e);
public ChannelPipe<StreamSourceChannel, StreamSinkChannel> createHalfDuplexPipe(final XnioIoFactory peer) throws IOException { getWorker().checkShutdown(); final Pipe pipe = Pipe.open(); boolean ok = false; try { pipe.source().configureBlocking(false); pipe.sink().configureBlocking(false); final WorkerThread peerThread = getPeerThread(peer); final SelectionKey readKey = registerChannel(pipe.source()); final SelectionKey writeKey = peerThread.registerChannel(pipe.sink()); final NioPipeStreamConnection leftConnection = new NioPipeStreamConnection(this, readKey, null); final NioPipeStreamConnection rightConnection = new NioPipeStreamConnection(this, null, writeKey); leftConnection.writeClosed(); rightConnection.readClosed(); final ChannelPipe<StreamSourceChannel,StreamSinkChannel> result = new ChannelPipe<StreamSourceChannel, StreamSinkChannel>(leftConnection.getSourceChannel(), rightConnection.getSinkChannel()); ok = true; return result; } finally { if (! ok) { safeClose(pipe.sink()); safeClose(pipe.source()); } } }
public ChannelPipe<StreamConnection, StreamConnection> createFullDuplexPipeConnection(XnioIoFactory peer) throws IOException { getWorker().checkShutdown(); boolean ok = false; final Pipe topPipe = Pipe.open();
public XnioWorker getWorker() { return WorkerThread.this.getWorker(); }
public XnioWorker getWorker() { return WorkerThread.this.getWorker(); }
public XnioWorker getWorker() { return getWorkerThread().getWorker(); }
public XnioWorker getWorker() { return getWorkerThread().getWorker(); }
public XnioWorker getWorker() { return getWorkerThread().getWorker(); }
public XnioWorker getWorker() { return getWorkerThread().getWorker(); }
WorkerThread getNextThread() { final WorkerThread[] all = getWorker().getAll(); final int number = getNumber(); if (number == all.length - 1) { return all[0]; } else { return all[number + 1]; } }
WorkerThread getNextThread() { final WorkerThread[] all = getWorker().getAll(); final int number = getNumber(); if (number == all.length - 1) { return all[0]; } else { return all[number + 1]; } }
private static WorkerThread getPeerThread(final XnioIoFactory peer) throws ClosedWorkerException { final WorkerThread peerThread; if (peer instanceof NioXnioWorker) { final NioXnioWorker peerWorker = (NioXnioWorker) peer; peerWorker.checkShutdown(); peerThread = peerWorker.chooseThread(); } else if (peer instanceof WorkerThread) { peerThread = (WorkerThread) peer; peerThread.getWorker().checkShutdown(); } else { throw log.notNioProvider(); } return peerThread; }