Example usage for java.nio.channels.spi SelectorProvider openSelector

List of usage examples for java.nio.channels.spi SelectorProvider openSelector

Introduction

In this page you can find the example usage for java.nio.channels.spi SelectorProvider openSelector.

Prototype

public abstract AbstractSelector openSelector() throws IOException;

Source Link

Document

Opens a selector.

Usage

From source file:SystemUtils.java

public static final Selector openSelector() throws IOException {
    Selector result = null;/*from  ww w  . j a v  a2  s  . c  om*/
    // check if it is linux os
    if (SystemUtils.isLinuxPlatform()) {
        try {
            Class<?> providerClazz = Class.forName("sun.nio.ch.EPollSelectorProvider");
            if (providerClazz != null) {
                try {
                    Method method = providerClazz.getMethod("provider");
                    if (method != null) {
                        SelectorProvider selectorProvider = (SelectorProvider) method.invoke(null);
                        if (selectorProvider != null) {
                            result = selectorProvider.openSelector();
                        }
                    }
                } catch (Exception e) {
                    // ignore
                }
            }
        } catch (Exception e) {
            // ignore
        }
    }
    if (result == null) {
        result = Selector.open();
    }
    return result;

}