aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/nio/channels/spi
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2003-10-12 13:39:07 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2003-10-12 13:39:07 +0000
commit81bc077a39faa66769629155bc7d3c03cfe1d194 (patch)
tree5d08f0f5020b2a6cf46bdef0ba775007240ccd17 /libjava/java/nio/channels/spi
parentb77d1698d9615b96f094c2bf665f4b16d6c5d674 (diff)
downloadgcc-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.java31
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;
}
}