diff options
author | Tom Tromey <tromey@gcc.gnu.org> | 2007-01-09 19:58:05 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2007-01-09 19:58:05 +0000 |
commit | 97b8365cafc3a344a22d3980b8ed885f5c6d8357 (patch) | |
tree | 996a5f57d4a68c53473382e45cb22f574cb3e4db /libjava/classpath/java/nio/channels | |
parent | c648dedbde727ca3f883bb5fd773aa4af70d3369 (diff) | |
download | gcc-97b8365cafc3a344a22d3980b8ed885f5c6d8357.zip gcc-97b8365cafc3a344a22d3980b8ed885f5c6d8357.tar.gz gcc-97b8365cafc3a344a22d3980b8ed885f5c6d8357.tar.bz2 |
Merged gcj-eclipse branch to trunk.
From-SVN: r120621
Diffstat (limited to 'libjava/classpath/java/nio/channels')
4 files changed, 21 insertions, 11 deletions
diff --git a/libjava/classpath/java/nio/channels/Channel.java b/libjava/classpath/java/nio/channels/Channel.java index d488bd2..33fcf31 100644 --- a/libjava/classpath/java/nio/channels/Channel.java +++ b/libjava/classpath/java/nio/channels/Channel.java @@ -1,5 +1,5 @@ /* Channel.java -- - Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,8 +39,9 @@ exception statement from your version. */ package java.nio.channels; import java.io.IOException; +import java.io.Closeable; -public interface Channel +public interface Channel extends Closeable { /** * Tells whether this channel is open or not diff --git a/libjava/classpath/java/nio/channels/Selector.java b/libjava/classpath/java/nio/channels/Selector.java index 2c883ef..1c09db7 100644 --- a/libjava/classpath/java/nio/channels/Selector.java +++ b/libjava/classpath/java/nio/channels/Selector.java @@ -82,7 +82,7 @@ public abstract class Selector * * @exception ClosedSelectorException If this selector is closed. */ - public abstract Set keys(); + public abstract Set<SelectionKey> keys(); /** * Returns the SelectorProvider that created the selector. @@ -115,7 +115,7 @@ public abstract class Selector * * @exception ClosedSelectorException If this selector is closed. */ - public abstract Set selectedKeys(); + public abstract Set<SelectionKey> selectedKeys(); /** * Selects a set of keys whose corresponding channels are ready diff --git a/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java b/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java index 847c02c..5d5277b 100644 --- a/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java +++ b/libjava/classpath/java/nio/channels/spi/AbstractSelectableChannel.java @@ -44,6 +44,7 @@ import java.nio.channels.SelectableChannel; import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.nio.channels.IllegalBlockingModeException; +import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; @@ -106,7 +107,15 @@ public abstract class AbstractSelectableChannel extends SelectableChannel */ protected final void implCloseChannel() throws IOException { - implCloseSelectableChannel(); + try + { + implCloseSelectableChannel(); + } + finally + { + for (Iterator it = keys.iterator(); it.hasNext(); ) + ((SelectionKey) it.next()).cancel(); + } } /** @@ -234,8 +243,8 @@ public abstract class AbstractSelectableChannel extends SelectableChannel if (key != null && key.isValid()) { - if (att != null) - key.attach(att); + key.interestOps(ops); + key.attach(att); } else { diff --git a/libjava/classpath/java/nio/channels/spi/AbstractSelector.java b/libjava/classpath/java/nio/channels/spi/AbstractSelector.java index 7838073..73f5077 100644 --- a/libjava/classpath/java/nio/channels/spi/AbstractSelector.java +++ b/libjava/classpath/java/nio/channels/spi/AbstractSelector.java @@ -1,5 +1,5 @@ /* AbstractSelector.java -- - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,7 +49,7 @@ public abstract class AbstractSelector extends Selector { private boolean closed; private SelectorProvider provider; - private HashSet cancelledKeys; + private HashSet<SelectionKey> cancelledKeys; /** * Initializes the slector. @@ -59,7 +59,7 @@ public abstract class AbstractSelector extends Selector protected AbstractSelector(SelectorProvider provider) { this.provider = provider; - this.cancelledKeys = new HashSet(); + this.cancelledKeys = new HashSet<SelectionKey>(); } /** @@ -115,7 +115,7 @@ public abstract class AbstractSelector extends Selector * * @return the cancelled keys set */ - protected final Set cancelledKeys() + protected final Set<SelectionKey> cancelledKeys() { if (! isOpen()) throw new ClosedSelectorException(); |