aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/nio/channels/spi
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2004-02-26 19:45:51 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2004-02-26 19:45:51 +0000
commitf57db409bc0a3da9ec6e59ce72681612f7fe74ae (patch)
tree566784ef027ee453be4ea8900e4de4c2bd1167bb /libjava/java/nio/channels/spi
parent135d78c60003ce8be95b69199c95c2abf755072c (diff)
downloadgcc-f57db409bc0a3da9ec6e59ce72681612f7fe74ae.zip
gcc-f57db409bc0a3da9ec6e59ce72681612f7fe74ae.tar.gz
gcc-f57db409bc0a3da9ec6e59ce72681612f7fe74ae.tar.bz2
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. From-SVN: r78519
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 76c6c2b..0a872bc 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
{