From ff9976f53113d56bbf6b0ae85d5b6b34574cc251 Mon Sep 17 00:00:00 2001 From: mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Wed, 7 Jan 2004 16:51:49 +0000 Subject: [PATCH] 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75507 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 20 +++++++++++++++++++ libjava/gnu/java/nio/DatagramChannelImpl.java | 3 +-- .../gnu/java/nio/ServerSocketChannelImpl.java | 3 +-- libjava/gnu/java/nio/SocketChannelImpl.java | 5 ++--- .../spi/AbstractSelectableChannel.java | 10 +++++----- 5 files changed, 29 insertions(+), 12 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index c90c47efe23c..85df30e65c67 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,23 @@ +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. + 2004-01-07 Michael Koch <konqueror@gmx.de> * java/net/ServerSocket.java (isBound): Fixed documentation. diff --git a/libjava/gnu/java/nio/DatagramChannelImpl.java b/libjava/gnu/java/nio/DatagramChannelImpl.java index af43256cc28a..3531803900aa 100644 --- a/libjava/gnu/java/nio/DatagramChannelImpl.java +++ b/libjava/gnu/java/nio/DatagramChannelImpl.java @@ -56,13 +56,13 @@ import java.nio.channels.spi.SelectorProvider; public final class DatagramChannelImpl extends DatagramChannel { private NIODatagramSocket socket; - private boolean blocking = true; protected DatagramChannelImpl (SelectorProvider provider) throws IOException { super (provider); socket = new NIODatagramSocket (new PlainDatagramSocketImpl(), this); + configureBlocking(true); } public int getNativeFD() @@ -85,7 +85,6 @@ public final class DatagramChannelImpl extends DatagramChannel throws IOException { socket.setSoTimeout (blocking ? 0 : NIOConstants.DEFAULT_TIMEOUT); - this.blocking = blocking; } public DatagramChannel connect (SocketAddress remote) diff --git a/libjava/gnu/java/nio/ServerSocketChannelImpl.java b/libjava/gnu/java/nio/ServerSocketChannelImpl.java index 97943c0ff8e0..fd975d20a7ad 100644 --- a/libjava/gnu/java/nio/ServerSocketChannelImpl.java +++ b/libjava/gnu/java/nio/ServerSocketChannelImpl.java @@ -55,7 +55,6 @@ import java.nio.channels.spi.SelectorProvider; public final class ServerSocketChannelImpl extends ServerSocketChannel { private NIOServerSocket serverSocket; - private boolean blocking = true; private boolean connected; protected ServerSocketChannelImpl (SelectorProvider provider) @@ -63,6 +62,7 @@ public final class ServerSocketChannelImpl extends ServerSocketChannel { super (provider); serverSocket = new NIOServerSocket (this); + configureBlocking(true); } public int getNativeFD() @@ -93,7 +93,6 @@ public final class ServerSocketChannelImpl extends ServerSocketChannel protected void implConfigureBlocking (boolean blocking) throws IOException { serverSocket.setSoTimeout (blocking ? 0 : NIOConstants.DEFAULT_TIMEOUT); - this.blocking = blocking; } public SocketChannel accept () throws IOException diff --git a/libjava/gnu/java/nio/SocketChannelImpl.java b/libjava/gnu/java/nio/SocketChannelImpl.java index ced8ef2476a1..efb5fec481b7 100644 --- a/libjava/gnu/java/nio/SocketChannelImpl.java +++ b/libjava/gnu/java/nio/SocketChannelImpl.java @@ -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); diff --git a/libjava/java/nio/channels/spi/AbstractSelectableChannel.java b/libjava/java/nio/channels/spi/AbstractSelectableChannel.java index b027b034ede6..17d6a2eaea1f 100644 --- a/libjava/java/nio/channels/spi/AbstractSelectableChannel.java +++ b/libjava/java/nio/channels/spi/AbstractSelectableChannel.java @@ -75,13 +75,13 @@ public abstract class AbstractSelectableChannel extends SelectableChannel /** * Adjusts this channel's blocking mode. */ - public final SelectableChannel configureBlocking (boolean block) + public final SelectableChannel configureBlocking (boolean blocking) throws IOException { - synchronized (LOCK) + synchronized (blockingLock()) { - blocking = true; - implConfigureBlocking (block); + implConfigureBlocking(blocking); + this.blocking = blocking; } return this; @@ -187,7 +187,7 @@ public abstract class AbstractSelectableChannel extends SelectableChannel SelectionKey key = null; AbstractSelector selector = (AbstractSelector) selin; - synchronized (LOCK) + synchronized (blockingLock()) { key = locate (selector); -- GitLab