< prev index next > src/java.base/share/classes/sun/nio/ch/PollerProvider.java
Print this page
/**
* Provider class for Poller implementations.
*/
abstract class PollerProvider {
- private static final PollerProvider INSTANCE = new DefaultPollerProvider();
+ private final Poller.Mode mode;
- PollerProvider() { }
+ PollerProvider(Poller.Mode mode) {
+ this.mode = mode;
+ }
+
+ final Poller.Mode pollerMode() {
+ return mode;
+ }
/**
- * Returns the system-wide PollerProvider.
+ * Creates a PollerProvider that uses its preferred/default poller mode.
*/
- static PollerProvider provider() {
- return INSTANCE;
+ static PollerProvider createProvider() {
+ return new DefaultPollerProvider();
}
/**
- * Returns the default poller mode.
- * @implSpec The default implementation uses system threads.
+ * Creates a PollerProvider that uses the given poller mode.
*/
- Poller.Mode defaultPollerMode() {
- return Poller.Mode.SYSTEM_THREADS;
+ static PollerProvider createProvider(Poller.Mode mode) {
+ return new DefaultPollerProvider(mode);
}
/**
- * Default number of read pollers for the given mode. The count must be a power of 2.
+ * Default number of read pollers. The count must be a power of 2.
* @implSpec The default implementation returns 1.
*/
- int defaultReadPollers(Poller.Mode mode) {
+ int defaultReadPollers() {
return 1;
}
/**
- * Default number of write pollers for the given mode. The count must be a power of 2.
+ * Default number of write pollers. The count must be a power of 2.
* @implSpec The default implementation returns 1.
*/
- int defaultWritePollers(Poller.Mode mode) {
+ int defaultWritePollers() {
return 1;
}
/**
* Maps a file descriptor to an index from 0 to {@code toIndex}.
< prev index next >