From 1356a0b61e883fff783f2f413f9282314110da98 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Tue, 1 May 2012 23:18:29 +0900 Subject: [PATCH] Replace Channel.Unsafe.setEventLoop() with register() - Added AbstractChannel.doRegister() --- .../io/netty/channel/AbstractChannel.java | 26 +++++++++++-------- .../main/java/io/netty/channel/Channel.java | 2 +- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/transport/src/main/java/io/netty/channel/AbstractChannel.java b/transport/src/main/java/io/netty/channel/AbstractChannel.java index 9894bbfcb0..a7c25099ae 100644 --- a/transport/src/main/java/io/netty/channel/AbstractChannel.java +++ b/transport/src/main/java/io/netty/channel/AbstractChannel.java @@ -349,17 +349,6 @@ public abstract class AbstractChannel extends DefaultAttributeMap implements Cha private class DefaultUnsafe implements Unsafe { - @Override - public void setEventLoop(EventLoop eventLoop) { - if (eventLoop == null) { - throw new NullPointerException("eventLoop"); - } - if (AbstractChannel.this.eventLoop != null) { - throw new IllegalStateException("attached to an event loop already"); - } - AbstractChannel.this.eventLoop = eventLoop; - } - @Override public java.nio.channels.Channel ch() { return javaChannel(); @@ -370,6 +359,20 @@ public abstract class AbstractChannel extends DefaultAttributeMap implements Cha return firstOut(); } + @Override + public void register(EventLoop eventLoop, ChannelFuture future) { + if (eventLoop == null) { + throw new NullPointerException("eventLoop"); + } + if (AbstractChannel.this.eventLoop != null) { + throw new IllegalStateException("registered to an event loop already"); + } + AbstractChannel.this.eventLoop = eventLoop; + + assert eventLoop().inEventLoop(); + doRegister(future); + } + @Override public void bind(final SocketAddress localAddress, final ChannelFuture future) { if (eventLoop().inEventLoop()) { @@ -465,6 +468,7 @@ public abstract class AbstractChannel extends DefaultAttributeMap implements Cha protected abstract java.nio.channels.Channel javaChannel(); protected abstract ChannelBufferHolder firstOut(); + protected abstract void doRegister(ChannelFuture future); protected abstract void doBind(SocketAddress localAddress, ChannelFuture future); protected abstract void doConnect(SocketAddress remoteAddress, SocketAddress localAddress, ChannelFuture future); protected abstract void doDisconnect(ChannelFuture future); diff --git a/transport/src/main/java/io/netty/channel/Channel.java b/transport/src/main/java/io/netty/channel/Channel.java index 7b8620f571..8935014d39 100644 --- a/transport/src/main/java/io/netty/channel/Channel.java +++ b/transport/src/main/java/io/netty/channel/Channel.java @@ -181,10 +181,10 @@ public interface Channel extends AttributeMap, ChannelFutureFactory, Comparable< Unsafe unsafe(); public interface Unsafe { - void setEventLoop(EventLoop eventLoop); java.nio.channels.Channel ch(); ChannelBufferHolder out(); + void register(EventLoop eventLoop, ChannelFuture future); void bind(SocketAddress localAddress, ChannelFuture future); void connect(SocketAddress remoteAddress, SocketAddress localAddress, ChannelFuture future); void disconnect(ChannelFuture future);