2004-01-07 Michael Koch <konqueror@gmx.de>

* gnu/java/nio/DatagramChannelImpl.java
	(blocking): Removed.
	(DatagramChannelImpl): Call configureBlocking().
	(implConfigureBlocking): Dont initialize blocking.
	* gnu/java/nio/ServerSocketChannelImpl.java
	(blocking): Removed.
	(ServerSocketChannelImpl): Call configureBlocking().
	(implConfigureBlocking): Dont initialize blocking.
	* gnu/java/nio/SocketChannelImpl.java
	(blocking): Removed.
	(SocketChannelImpl): Call configureBlocking().
	(implConfigureBlocking): Dont initialize blocking.
	(connect): Use isBlocking().
	* java/nio/channels/spi/AbstractSelectableChannel.java
	(configureBlocking): Use blockingLock() instead of LOCK.
	Set blocking after successfully called implConfigureBlocking().
	(register): Use blockingLock() instead of LOCK.

From-SVN: r75507
This commit is contained in:
Michael Koch 2004-01-07 16:51:49 +00:00 committed by Michael Koch
parent 89e4eb2a34
commit 26067b8be8
5 changed files with 29 additions and 12 deletions

View file

@ -65,7 +65,6 @@ public final class SocketChannelImpl extends SocketChannel
{
private PlainSocketImpl impl;
private NIOSocket socket;
private boolean blocking = true;
private boolean connectionPending;
SocketChannelImpl (SelectorProvider provider)
@ -74,6 +73,7 @@ public final class SocketChannelImpl extends SocketChannel
super (provider);
impl = new PlainSocketImpl();
socket = new NIOSocket (impl, this);
configureBlocking(true);
}
SocketChannelImpl (SelectorProvider provider,
@ -117,7 +117,6 @@ public final class SocketChannelImpl extends SocketChannel
protected void implConfigureBlocking (boolean blocking) throws IOException
{
socket.setSoTimeout (blocking ? 0 : NIOConstants.DEFAULT_TIMEOUT);
this.blocking = blocking;
}
public boolean connect (SocketAddress remote) throws IOException
@ -137,7 +136,7 @@ public final class SocketChannelImpl extends SocketChannel
if (((InetSocketAddress) remote).isUnresolved())
throw new UnresolvedAddressException();
if (blocking)
if (isBlocking())
{
// Do blocking connect.
socket.connect (remote);