static void close(AbstractOioChannel channel, ChannelFuture future) { close(channel, future, isIoThread(channel)); }
case OPEN: if (Boolean.FALSE.equals(value)) { AbstractOioWorker.close(channel, future); bind(channel, future, (SocketAddress) value); } else { AbstractOioWorker.close(channel, future); connect(channel, future, (SocketAddress) value); } else { AbstractOioWorker.close(channel, future); AbstractOioWorker.setInterestOps(channel, future, ((Integer) value).intValue()); break;
cont = process(); } catch (Throwable t) { boolean readTimeout = t instanceof SocketTimeoutException; processEventQueue(); close(channel, succeededFuture(channel), true); processEventQueue();
} finally { if (connected && !workerStarted) { AbstractOioWorker.close(channel, future);
@Override protected boolean isFireExceptionCaughtLater(ChannelEvent event, Throwable actualCause) { Channel channel = event.getChannel(); boolean fireLater = false; if (channel instanceof AbstractOioChannel) { fireLater = !AbstractOioWorker.isIoThread((AbstractOioChannel) channel); } return fireLater; }
@Override public void run() { boolean fireConnected = channel instanceof OioAcceptedSocketChannel; if (fireConnected && channel.isOpen()) { // Fire the channelConnected event for OioAcceptedSocketChannel. // See #287 fireChannelConnected(channel, channel.getRemoteAddress()); } super.run(); }
case OPEN: if (Boolean.FALSE.equals(value)) { AbstractOioWorker.close(channel, future); case CONNECTED: if (value == null) { AbstractOioWorker.close(channel, future); AbstractOioWorker.setInterestOps(channel, future, ((Integer) value).intValue()); break;
private void bind( OioDatagramChannel channel, ChannelFuture future, SocketAddress localAddress) { boolean bound = false; boolean workerStarted = false; try { channel.socket.bind(localAddress); bound = true; // Fire events future.setSuccess(); fireChannelBound(channel, channel.getLocalAddress()); // Start the business. DeadLockProofWorker.start( workerExecutor, new ThreadRenamingRunnable( new OioDatagramWorker(channel), "Old I/O datagram worker (" + channel + ')', determiner)); workerStarted = true; } catch (Throwable t) { future.setFailure(t); fireExceptionCaught(channel, t); } finally { if (bound && !workerStarted) { AbstractOioWorker.close(channel, future); } } }
static void setInterestOps( AbstractOioChannel channel, ChannelFuture future, int interestOps) { boolean iothread = isIoThread(channel);
case OPEN: if (Boolean.FALSE.equals(value)) { AbstractOioWorker.close(channel, future); bind(channel, future, (SocketAddress) value); } else { AbstractOioWorker.close(channel, future); AbstractOioWorker.setInterestOps(channel, future, ((Integer) value).intValue()); break;
} finally { if (connected && !workerStarted) { AbstractOioWorker.close(channel, future);