2012-04-03 15:03:04 +02:00
|
|
|
package io.netty.channel;
|
|
|
|
|
|
|
|
import java.util.concurrent.ThreadFactory;
|
2012-05-11 13:19:57 +02:00
|
|
|
|
2012-06-02 02:51:19 +02:00
|
|
|
public abstract class SingleThreadEventLoop extends SingleThreadEventExecutor implements EventLoop {
|
2012-04-29 11:40:55 +02:00
|
|
|
|
2012-06-02 07:33:53 +02:00
|
|
|
protected SingleThreadEventLoop(ThreadFactory threadFactory) {
|
|
|
|
super(threadFactory);
|
2012-04-03 15:03:04 +02:00
|
|
|
}
|
|
|
|
|
2012-04-29 10:59:42 +02:00
|
|
|
@Override
|
2012-04-03 15:19:35 +02:00
|
|
|
public ChannelFuture register(Channel channel) {
|
2012-05-10 17:57:42 +02:00
|
|
|
if (channel == null) {
|
|
|
|
throw new NullPointerException("channel");
|
|
|
|
}
|
|
|
|
return register(channel, channel.newFuture());
|
2012-04-03 15:03:04 +02:00
|
|
|
}
|
|
|
|
|
2012-04-29 11:40:55 +02:00
|
|
|
@Override
|
2012-05-09 15:09:06 +02:00
|
|
|
public ChannelFuture register(final Channel channel, final ChannelFuture future) {
|
2012-05-02 08:01:58 +02:00
|
|
|
if (inEventLoop()) {
|
|
|
|
channel.unsafe().register(this, future);
|
|
|
|
} else {
|
|
|
|
execute(new Runnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
channel.unsafe().register(SingleThreadEventLoop.this, future);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2012-05-09 15:09:06 +02:00
|
|
|
return future;
|
2012-04-29 11:40:55 +02:00
|
|
|
}
|
2012-04-03 15:03:04 +02:00
|
|
|
}
|