Replaced flag update methods with simple assignment

This commit is contained in:
Trustin Lee 2010-01-09 07:57:18 +00:00
parent 4668cb792e
commit 0acffadd29
4 changed files with 11 additions and 25 deletions

View File

@ -45,7 +45,7 @@ final class NioAcceptedSocketChannel extends NioSocketChannel {
this.bossThread = bossThread;
setConnected();
state = NioSocketChannel.ST_CONNECTED;
fireChannelOpen(this);
fireChannelBound(this, getLocalAddress());
fireChannelConnected(this, getRemoteAddress());

View File

@ -124,7 +124,7 @@ class NioClientSocketPipelineSink extends AbstractChannelSink {
try {
channel.socket.socket().bind(localAddress);
channel.boundManually = true;
channel.setBound();
channel.state = NioSocketChannel.ST_BOUND;
future.setSuccess();
fireChannelBound(channel, channel.getLocalAddress());
} catch (Throwable t) {

View File

@ -45,11 +45,11 @@ import org.jboss.netty.util.internal.ThreadLocalBoolean;
class NioSocketChannel extends AbstractChannel
implements org.jboss.netty.channel.socket.SocketChannel {
private static final int ST_OPEN = 0;
private static final int ST_BOUND = 1;
private static final int ST_CONNECTED = 2;
private static final int ST_CLOSED = -1;
private volatile int state = ST_OPEN;
static final int ST_OPEN = 0;
static final int ST_BOUND = 1;
static final int ST_CONNECTED = 2;
static final int ST_CLOSED = -1;
volatile int state = ST_OPEN;
final SocketChannel socket;
final NioWorker worker;
@ -127,24 +127,10 @@ class NioSocketChannel extends AbstractChannel
return state == ST_CONNECTED;
}
final void setBound() {
assert state == ST_OPEN;
state = ST_BOUND;
}
final void setConnected() {
assert state == ST_OPEN || state == ST_BOUND;
state = ST_CONNECTED;
}
@Override
protected boolean setClosed() {
setClosedFlag();
return super.setClosed();
}
final void setClosedFlag() {
state = ST_CLOSED;
return super.setClosed();
}
@Override

View File

@ -327,7 +327,7 @@ class NioWorker implements Runnable {
failure = false;
} catch (Throwable t) {
if (!ch.isConnected()) {
channel.setClosedFlag();
channel.state = NioSocketChannel.ST_CLOSED;
}
if (t instanceof AsynchronousCloseException) {
// Can happen, and does not need a user attention.
@ -475,7 +475,7 @@ class NioWorker implements Runnable {
}
} catch (Throwable t) {
if (!channel.socket.isConnected()) {
channel.setClosedFlag();
channel.state = NioSocketChannel.ST_CLOSED;
}
if (t instanceof AsynchronousCloseException) {
// Doesn't need a user attention - ignore.
@ -782,7 +782,7 @@ class NioWorker implements Runnable {
}
if (!server) {
channel.setConnected();
channel.state = NioSocketChannel.ST_CONNECTED;
if (!((NioClientSocketChannel) channel).boundManually) {
fireChannelBound(channel, localAddress);
}