summaryrefslogtreecommitdiffstats
path: root/libjava/java/nio/channels/spi
diff options
context:
space:
mode:
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-26 19:45:51 +0000
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-26 19:45:51 +0000
commit5178531ad902228ea7c215418e82b8d68814518e (patch)
tree566784ef027ee453be4ea8900e4de4c2bd1167bb /libjava/java/nio/channels/spi
parent4b9abdac0b9b26362308959b78b8952d99050995 (diff)
downloadppe42-gcc-5178531ad902228ea7c215418e82b8d68814518e.tar.gz
ppe42-gcc-5178531ad902228ea7c215418e82b8d68814518e.zip
2004-02-26 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/FileLockImpl.java (finalize): Made protected. * java/nio/channels/FileChannel.java (MapMode.READ_ONLY): Made final. (MapMode.READ_WRITE): Made final. (MapMode.PRIVATE): Made final. * java/nio/channels/SocketChannel.java (open): Simplified code. * java/nio/channels/spi/AbstractSelectableChannel.java (registered): Unused, removed. (keyFor): Check channel is open, only locate key and not add a new one. (register): Don't delete attachments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78519 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/nio/channels/spi')
-rw-r--r--libjava/java/nio/channels/spi/AbstractSelectableChannel.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/libjava/java/nio/channels/spi/AbstractSelectableChannel.java b/libjava/java/nio/channels/spi/AbstractSelectableChannel.java
index 76c6c2b899f..0a872bc7bc8 100644
--- a/libjava/java/nio/channels/spi/AbstractSelectableChannel.java
+++ b/libjava/java/nio/channels/spi/AbstractSelectableChannel.java
@@ -48,7 +48,6 @@ import java.util.ListIterator;
public abstract class AbstractSelectableChannel extends SelectableChannel
{
- private int registered;
private boolean blocking = true;
private Object LOCK = new Object();
private SelectorProvider provider;
@@ -135,9 +134,15 @@ public abstract class AbstractSelectableChannel extends SelectableChannel
*/
public final SelectionKey keyFor(Selector selector)
{
+ if (! isOpen())
+ return null;
+
try
{
- return register (selector, 0, null);
+ synchronized(blockingLock())
+ {
+ return locate (selector);
+ }
}
catch (Exception e)
{
@@ -196,7 +201,8 @@ public abstract class AbstractSelectableChannel extends SelectableChannel
if (key != null)
{
- key.attach (att);
+ if (att != null)
+ key.attach (att);
}
else
{
OpenPOWER on IntegriCloud