diff options
author | Michael Koch <konqueror@gmx.de> | 2003-10-12 13:39:07 +0000 |
---|---|---|
committer | Michael Koch <mkoch@gcc.gnu.org> | 2003-10-12 13:39:07 +0000 |
commit | 81bc077a39faa66769629155bc7d3c03cfe1d194 (patch) | |
tree | 5d08f0f5020b2a6cf46bdef0ba775007240ccd17 /libjava/java/nio/channels/spi | |
parent | b77d1698d9615b96f094c2bf665f4b16d6c5d674 (diff) | |
download | gcc-81bc077a39faa66769629155bc7d3c03cfe1d194.zip gcc-81bc077a39faa66769629155bc7d3c03cfe1d194.tar.gz gcc-81bc077a39faa66769629155bc7d3c03cfe1d194.tar.bz2 |
2003-10-12 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/PipeImpl.java
(SourceChannelImpl): New inner class.
(SinkChannelImpl): New inner class.
(sink): New member variable.
(source): New member variable.
(PipeImpl): Add SelectorProvider argument, implemented.
(nativeInit): New method.
(sink): Return sink channel.
(source): Return source channel.
* gnu/java/nio/SelectorProviderImpl.java
(openPipe): Give provider as argument to PipeImpl constructor.
* java/nio/channels/spi/SelectorProvider.java
(pr): Removed.
(systemDefaultProvider): New member variable.
(provider): Made it synchronized, use property
java.nio.channels.spi.SelectorProvider.
* gnu/java/nio/natPipeImpl.cc: New file.
* Makefile.am (nat_source_files): Added gnu/java/nio/natPipeImpl.cc.
* Makefile.in: Regenerated.
From-SVN: r72397
Diffstat (limited to 'libjava/java/nio/channels/spi')
-rw-r--r-- | libjava/java/nio/channels/spi/SelectorProvider.java | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/libjava/java/nio/channels/spi/SelectorProvider.java b/libjava/java/nio/channels/spi/SelectorProvider.java index 1d4ccfa..1de3e4f 100644 --- a/libjava/java/nio/channels/spi/SelectorProvider.java +++ b/libjava/java/nio/channels/spi/SelectorProvider.java @@ -1,5 +1,5 @@ /* SelectorProvider.java - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2003 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -50,7 +50,7 @@ import java.nio.channels.SocketChannel; */ public abstract class SelectorProvider { - static SelectorProvider pr; + private static SelectorProvider systemDefaultProvider; /** * Initializes the selector provider. @@ -95,13 +95,32 @@ public abstract class SelectorProvider * Returns the system-wide default selector provider for this invocation * of the Java virtual machine. */ - public static SelectorProvider provider () + public static synchronized SelectorProvider provider () { - if (pr == null) + if (systemDefaultProvider == null) { - pr = new SelectorProviderImpl (); + String propertyValue = + System.getProperty ("java.nio.channels.spi.SelectorProvider"); + + if (propertyValue == null + || propertyValue.equals ("")) + systemDefaultProvider = new SelectorProviderImpl(); + else + { + try + { + systemDefaultProvider = (SelectorProvider) Class.forName + (propertyValue).newInstance(); + } + catch (Exception e) + { + System.err.println ("Could not instantiate class: " + + propertyValue); + systemDefaultProvider = new SelectorProviderImpl(); + } + } } - return pr; + return systemDefaultProvider; } } |