java.nio.channels.ClosedSelectorException#com.sun.corba.se.pept.transport.EventHandler源码实例Demo

下面列出了java.nio.channels.ClosedSelectorException#com.sun.corba.se.pept.transport.EventHandler 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: openjdk-8   文件: SelectorImpl.java
private void destroyReaderThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyReaderThread: " + eventHandler);
    }
    ReaderThread readerThread = (ReaderThread)
        readerThreads.get(eventHandler);
    if (readerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyReaderThread: cannot find ReaderThread - ignoring.");
        }
        return;
    }
    readerThreads.remove(eventHandler);
    readerThread.close();
}
 
源代码2 项目: jdk1.8-source-analysis   文件: SelectorImpl.java
private void destroyListenerThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyListenerThread: " + eventHandler);
    }
    ListenerThread listenerThread = (ListenerThread)
        listenerThreads.get(eventHandler);
    if (listenerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyListenerThread: cannot find ListenerThread - ignoring.");
        }
        return;
    }
    listenerThreads.remove(eventHandler);
    listenerThread.close();
}
 
源代码3 项目: jdk1.8-source-analysis   文件: SelectorImpl.java
private void destroyReaderThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyReaderThread: " + eventHandler);
    }
    ReaderThread readerThread = (ReaderThread)
        readerThreads.get(eventHandler);
    if (readerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyReaderThread: cannot find ReaderThread - ignoring.");
        }
        return;
    }
    readerThreads.remove(eventHandler);
    readerThread.close();
}
 
源代码4 项目: TencentKona-8   文件: SelectorImpl.java
private void destroyListenerThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyListenerThread: " + eventHandler);
    }
    ListenerThread listenerThread = (ListenerThread)
        listenerThreads.get(eventHandler);
    if (listenerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyListenerThread: cannot find ListenerThread - ignoring.");
        }
        return;
    }
    listenerThreads.remove(eventHandler);
    listenerThread.close();
}
 
源代码5 项目: TencentKona-8   文件: SelectorImpl.java
private void destroyReaderThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyReaderThread: " + eventHandler);
    }
    ReaderThread readerThread = (ReaderThread)
        readerThreads.get(eventHandler);
    if (readerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyReaderThread: cannot find ReaderThread - ignoring.");
        }
        return;
    }
    readerThreads.remove(eventHandler);
    readerThread.close();
}
 
源代码6 项目: jdk8u60   文件: SelectorImpl.java
private void destroyReaderThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyReaderThread: " + eventHandler);
    }
    ReaderThread readerThread = (ReaderThread)
        readerThreads.get(eventHandler);
    if (readerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyReaderThread: cannot find ReaderThread - ignoring.");
        }
        return;
    }
    readerThreads.remove(eventHandler);
    readerThread.close();
}
 
源代码7 项目: JDKSourceCode1.8   文件: SelectorImpl.java
private void destroyListenerThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyListenerThread: " + eventHandler);
    }
    ListenerThread listenerThread = (ListenerThread)
        listenerThreads.get(eventHandler);
    if (listenerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyListenerThread: cannot find ListenerThread - ignoring.");
        }
        return;
    }
    listenerThreads.remove(eventHandler);
    listenerThread.close();
}
 
源代码8 项目: JDKSourceCode1.8   文件: SelectorImpl.java
private void destroyReaderThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyReaderThread: " + eventHandler);
    }
    ReaderThread readerThread = (ReaderThread)
        readerThreads.get(eventHandler);
    if (readerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyReaderThread: cannot find ReaderThread - ignoring.");
        }
        return;
    }
    readerThreads.remove(eventHandler);
    readerThread.close();
}
 
源代码9 项目: hottub   文件: SelectorImpl.java
private void destroyReaderThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyReaderThread: " + eventHandler);
    }
    ReaderThread readerThread = (ReaderThread)
        readerThreads.get(eventHandler);
    if (readerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyReaderThread: cannot find ReaderThread - ignoring.");
        }
        return;
    }
    readerThreads.remove(eventHandler);
    readerThread.close();
}
 
源代码10 项目: openjdk-jdk8u   文件: SelectorImpl.java
private void destroyListenerThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyListenerThread: " + eventHandler);
    }
    ListenerThread listenerThread = (ListenerThread)
        listenerThreads.get(eventHandler);
    if (listenerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyListenerThread: cannot find ListenerThread - ignoring.");
        }
        return;
    }
    listenerThreads.remove(eventHandler);
    listenerThread.close();
}
 
源代码11 项目: openjdk-jdk8u   文件: SelectorImpl.java
private void destroyReaderThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyReaderThread: " + eventHandler);
    }
    ReaderThread readerThread = (ReaderThread)
        readerThreads.get(eventHandler);
    if (readerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyReaderThread: cannot find ReaderThread - ignoring.");
        }
        return;
    }
    readerThreads.remove(eventHandler);
    readerThread.close();
}
 
源代码12 项目: openjdk-8   文件: SelectorImpl.java
private void destroyListenerThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyListenerThread: " + eventHandler);
    }
    ListenerThread listenerThread = (ListenerThread)
        listenerThreads.get(eventHandler);
    if (listenerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyListenerThread: cannot find ListenerThread - ignoring.");
        }
        return;
    }
    listenerThreads.remove(eventHandler);
    listenerThread.close();
}
 
源代码13 项目: openjdk-jdk9   文件: SelectorImpl.java
private void destroyListenerThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyListenerThread: " + eventHandler);
    }
    ListenerThread listenerThread = (ListenerThread)
        listenerThreads.get(eventHandler);
    if (listenerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyListenerThread: cannot find ListenerThread - ignoring.");
        }
        return;
    }
    listenerThreads.remove(eventHandler);
    listenerThread.close();
}
 
源代码14 项目: openjdk-jdk8u-backup   文件: SelectorImpl.java
private void destroyReaderThread(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".destroyReaderThread: " + eventHandler);
    }
    ReaderThread readerThread = (ReaderThread)
        readerThreads.get(eventHandler);
    if (readerThread == null) {
        if (orb.transportDebugFlag) {
            dprint(".destroyReaderThread: cannot find ReaderThread - ignoring.");
        }
        return;
    }
    readerThreads.remove(eventHandler);
    readerThread.close();
}
 
源代码15 项目: jdk1.8-source-analysis   文件: SelectorImpl.java
public void registerForEvent(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".registerForEvent: " + eventHandler);
    }

    if (isClosed()) {
        if (orb.transportDebugFlag) {
            dprint(".registerForEvent: closed: " + eventHandler);
        }
        return;
    }

    if (eventHandler.shouldUseSelectThreadToWait()) {
        synchronized (deferredRegistrations) {
            deferredRegistrations.add(eventHandler);
        }
        if (! selectorStarted) {
            startSelector();
        }
        selector.wakeup();
        return;
    }

    switch (eventHandler.getInterestOps()) {
    case SelectionKey.OP_ACCEPT :
        createListenerThread(eventHandler);
        break;
    case SelectionKey.OP_READ :
        createReaderThread(eventHandler);
        break;
    default:
        if (orb.transportDebugFlag) {
            dprint(".registerForEvent: default: " + eventHandler);
        }
        throw new RuntimeException(
            "SelectorImpl.registerForEvent: unknown interest ops");
    }
}
 
源代码16 项目: jdk1.8-source-analysis   文件: SelectorImpl.java
private void clearDeferredRegistrations() {
    synchronized (deferredRegistrations) {
        int deferredListSize = deferredRegistrations.size();
        if (orb.transportDebugFlag) {
            dprint(".clearDeferredRegistrations:deferred list size == " + deferredListSize);
        }
        for (int i = 0; i < deferredListSize; i++) {
            EventHandler eventHandler =
                (EventHandler)deferredRegistrations.get(i);
            if (orb.transportDebugFlag) {
                dprint(".clearDeferredRegistrations: " + eventHandler);
            }
            SelectableChannel channel = eventHandler.getChannel();
            SelectionKey selectionKey = null;

            try {
                if (orb.transportDebugFlag) {
                    dprint(".clearDeferredRegistrations:close channel == "
                            + channel);
                    dprint(".clearDeferredRegistrations:close channel class == "
                            + channel.getClass().getName());
                }
                channel.close();
                selectionKey = eventHandler.getSelectionKey();
                if (selectionKey != null) {
                    selectionKey.cancel();
                    selectionKey.attach(null);
                }
            } catch (IOException ioEx) {
                if (orb.transportDebugFlag) {
                    dprint(".clearDeferredRegistrations: ", ioEx);
                }
            }
        }
        deferredRegistrations.clear();
    }
}
 
源代码17 项目: hottub   文件: SelectorImpl.java
private void clearDeferredRegistrations() {
    synchronized (deferredRegistrations) {
        int deferredListSize = deferredRegistrations.size();
        if (orb.transportDebugFlag) {
            dprint(".clearDeferredRegistrations:deferred list size == " + deferredListSize);
        }
        for (int i = 0; i < deferredListSize; i++) {
            EventHandler eventHandler =
                (EventHandler)deferredRegistrations.get(i);
            if (orb.transportDebugFlag) {
                dprint(".clearDeferredRegistrations: " + eventHandler);
            }
            SelectableChannel channel = eventHandler.getChannel();
            SelectionKey selectionKey = null;

            try {
                if (orb.transportDebugFlag) {
                    dprint(".clearDeferredRegistrations:close channel == "
                            + channel);
                    dprint(".clearDeferredRegistrations:close channel class == "
                            + channel.getClass().getName());
                }
                channel.close();
                selectionKey = eventHandler.getSelectionKey();
                if (selectionKey != null) {
                    selectionKey.cancel();
                    selectionKey.attach(null);
                }
            } catch (IOException ioEx) {
                if (orb.transportDebugFlag) {
                    dprint(".clearDeferredRegistrations: ", ioEx);
                }
            }
        }
        deferredRegistrations.clear();
    }
}
 
源代码18 项目: TencentKona-8   文件: SelectorImpl.java
public void registerForEvent(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".registerForEvent: " + eventHandler);
    }

    if (isClosed()) {
        if (orb.transportDebugFlag) {
            dprint(".registerForEvent: closed: " + eventHandler);
        }
        return;
    }

    if (eventHandler.shouldUseSelectThreadToWait()) {
        synchronized (deferredRegistrations) {
            deferredRegistrations.add(eventHandler);
        }
        if (! selectorStarted) {
            startSelector();
        }
        selector.wakeup();
        return;
    }

    switch (eventHandler.getInterestOps()) {
    case SelectionKey.OP_ACCEPT :
        createListenerThread(eventHandler);
        break;
    case SelectionKey.OP_READ :
        createReaderThread(eventHandler);
        break;
    default:
        if (orb.transportDebugFlag) {
            dprint(".registerForEvent: default: " + eventHandler);
        }
        throw new RuntimeException(
            "SelectorImpl.registerForEvent: unknown interest ops");
    }
}
 
源代码19 项目: TencentKona-8   文件: SelectorImpl.java
private void clearDeferredRegistrations() {
    synchronized (deferredRegistrations) {
        int deferredListSize = deferredRegistrations.size();
        if (orb.transportDebugFlag) {
            dprint(".clearDeferredRegistrations:deferred list size == " + deferredListSize);
        }
        for (int i = 0; i < deferredListSize; i++) {
            EventHandler eventHandler =
                (EventHandler)deferredRegistrations.get(i);
            if (orb.transportDebugFlag) {
                dprint(".clearDeferredRegistrations: " + eventHandler);
            }
            SelectableChannel channel = eventHandler.getChannel();
            SelectionKey selectionKey = null;

            try {
                if (orb.transportDebugFlag) {
                    dprint(".clearDeferredRegistrations:close channel == "
                            + channel);
                    dprint(".clearDeferredRegistrations:close channel class == "
                            + channel.getClass().getName());
                }
                channel.close();
                selectionKey = eventHandler.getSelectionKey();
                if (selectionKey != null) {
                    selectionKey.cancel();
                    selectionKey.attach(null);
                }
            } catch (IOException ioEx) {
                if (orb.transportDebugFlag) {
                    dprint(".clearDeferredRegistrations: ", ioEx);
                }
            }
        }
        deferredRegistrations.clear();
    }
}
 
源代码20 项目: TencentKona-8   文件: SelectorImpl.java
private void handleDeferredRegistrations()
{
    synchronized (deferredRegistrations) {
        int deferredListSize = deferredRegistrations.size();
        for (int i = 0; i < deferredListSize; i++) {
            EventHandler eventHandler =
                (EventHandler)deferredRegistrations.get(i);
            if (orb.transportDebugFlag) {
                dprint(".handleDeferredRegistrations: " + eventHandler);
            }
            SelectableChannel channel = eventHandler.getChannel();
            SelectionKey selectionKey = null;
            try {
                selectionKey =
                    channel.register(selector,
                                     eventHandler.getInterestOps(),
                                     (Object)eventHandler);
            } catch (ClosedChannelException e) {
                if (orb.transportDebugFlag) {
                    dprint(".handleDeferredRegistrations: ", e);
                }
            }
            eventHandler.setSelectionKey(selectionKey);
        }
        deferredRegistrations.clear();
    }
}
 
源代码21 项目: openjdk-8-source   文件: SelectorImpl.java
public void registerInterestOps(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".registerInterestOps:-> " + eventHandler);
    }

    SelectionKey selectionKey = eventHandler.getSelectionKey();
    if (selectionKey.isValid()) {
        int ehOps = eventHandler.getInterestOps();
        SelectionKeyAndOp keyAndOp = new SelectionKeyAndOp(selectionKey, ehOps);
        synchronized(interestOpsList) {
            interestOpsList.add(keyAndOp);
        }
        // tell Selector Thread there's an update to a SelectorKey's Ops
        selector.wakeup();
    }
    else {
        wrapper.selectionKeyInvalid(eventHandler.toString());
        if (orb.transportDebugFlag) {
            dprint(".registerInterestOps: EventHandler SelectionKey not valid " + eventHandler);
        }
    }

    if (orb.transportDebugFlag) {
        dprint(".registerInterestOps:<- ");
    }
}
 
源代码22 项目: jdk8u60   文件: SelectorImpl.java
public void registerInterestOps(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".registerInterestOps:-> " + eventHandler);
    }

    SelectionKey selectionKey = eventHandler.getSelectionKey();
    if (selectionKey.isValid()) {
        int ehOps = eventHandler.getInterestOps();
        SelectionKeyAndOp keyAndOp = new SelectionKeyAndOp(selectionKey, ehOps);
        synchronized(interestOpsList) {
            interestOpsList.add(keyAndOp);
        }
        // tell Selector Thread there's an update to a SelectorKey's Ops
        selector.wakeup();
    }
    else {
        wrapper.selectionKeyInvalid(eventHandler.toString());
        if (orb.transportDebugFlag) {
            dprint(".registerInterestOps: EventHandler SelectionKey not valid " + eventHandler);
        }
    }

    if (orb.transportDebugFlag) {
        dprint(".registerInterestOps:<- ");
    }
}
 
源代码23 项目: jdk8u60   文件: SelectorImpl.java
public void registerForEvent(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".registerForEvent: " + eventHandler);
    }

    if (isClosed()) {
        if (orb.transportDebugFlag) {
            dprint(".registerForEvent: closed: " + eventHandler);
        }
        return;
    }

    if (eventHandler.shouldUseSelectThreadToWait()) {
        synchronized (deferredRegistrations) {
            deferredRegistrations.add(eventHandler);
        }
        if (! selectorStarted) {
            startSelector();
        }
        selector.wakeup();
        return;
    }

    switch (eventHandler.getInterestOps()) {
    case SelectionKey.OP_ACCEPT :
        createListenerThread(eventHandler);
        break;
    case SelectionKey.OP_READ :
        createReaderThread(eventHandler);
        break;
    default:
        if (orb.transportDebugFlag) {
            dprint(".registerForEvent: default: " + eventHandler);
        }
        throw new RuntimeException(
            "SelectorImpl.registerForEvent: unknown interest ops");
    }
}
 
源代码24 项目: jdk8u60   文件: SelectorImpl.java
public void unregisterForEvent(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".unregisterForEvent: " + eventHandler);
    }

    if (isClosed()) {
        if (orb.transportDebugFlag) {
            dprint(".unregisterForEvent: closed: " + eventHandler);
        }
        return;
    }

    if (eventHandler.shouldUseSelectThreadToWait()) {
        SelectionKey selectionKey ;
        synchronized(deferredRegistrations) {
            selectionKey = eventHandler.getSelectionKey();
        }
        if (selectionKey != null) {
            selectionKey.cancel();
        }
        selector.wakeup();
        return;
    }

    switch (eventHandler.getInterestOps()) {
    case SelectionKey.OP_ACCEPT :
        destroyListenerThread(eventHandler);
        break;
    case SelectionKey.OP_READ :
        destroyReaderThread(eventHandler);
        break;
    default:
        if (orb.transportDebugFlag) {
            dprint(".unregisterForEvent: default: " + eventHandler);
        }
        throw new RuntimeException(
            "SelectorImpl.uregisterForEvent: unknown interest ops");
    }
}
 
源代码25 项目: jdk8u60   文件: SelectorImpl.java
private void handleDeferredRegistrations()
{
    synchronized (deferredRegistrations) {
        int deferredListSize = deferredRegistrations.size();
        for (int i = 0; i < deferredListSize; i++) {
            EventHandler eventHandler =
                (EventHandler)deferredRegistrations.get(i);
            if (orb.transportDebugFlag) {
                dprint(".handleDeferredRegistrations: " + eventHandler);
            }
            SelectableChannel channel = eventHandler.getChannel();
            SelectionKey selectionKey = null;
            try {
                selectionKey =
                    channel.register(selector,
                                     eventHandler.getInterestOps(),
                                     (Object)eventHandler);
            } catch (ClosedChannelException e) {
                if (orb.transportDebugFlag) {
                    dprint(".handleDeferredRegistrations: " + e);
                }
            }
            eventHandler.setSelectionKey(selectionKey);
        }
        deferredRegistrations.clear();
    }
}
 
源代码26 项目: openjdk-8   文件: SelectorImpl.java
private void handleDeferredRegistrations()
{
    synchronized (deferredRegistrations) {
        int deferredListSize = deferredRegistrations.size();
        for (int i = 0; i < deferredListSize; i++) {
            EventHandler eventHandler =
                (EventHandler)deferredRegistrations.get(i);
            if (orb.transportDebugFlag) {
                dprint(".handleDeferredRegistrations: " + eventHandler);
            }
            SelectableChannel channel = eventHandler.getChannel();
            SelectionKey selectionKey = null;
            try {
                selectionKey =
                    channel.register(selector,
                                     eventHandler.getInterestOps(),
                                     (Object)eventHandler);
            } catch (ClosedChannelException e) {
                if (orb.transportDebugFlag) {
                    dprint(".handleDeferredRegistrations: " + e);
                }
            }
            eventHandler.setSelectionKey(selectionKey);
        }
        deferredRegistrations.clear();
    }
}
 
源代码27 项目: JDKSourceCode1.8   文件: SelectorImpl.java
public void registerForEvent(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".registerForEvent: " + eventHandler);
    }

    if (isClosed()) {
        if (orb.transportDebugFlag) {
            dprint(".registerForEvent: closed: " + eventHandler);
        }
        return;
    }

    if (eventHandler.shouldUseSelectThreadToWait()) {
        synchronized (deferredRegistrations) {
            deferredRegistrations.add(eventHandler);
        }
        if (! selectorStarted) {
            startSelector();
        }
        selector.wakeup();
        return;
    }

    switch (eventHandler.getInterestOps()) {
    case SelectionKey.OP_ACCEPT :
        createListenerThread(eventHandler);
        break;
    case SelectionKey.OP_READ :
        createReaderThread(eventHandler);
        break;
    default:
        if (orb.transportDebugFlag) {
            dprint(".registerForEvent: default: " + eventHandler);
        }
        throw new RuntimeException(
            "SelectorImpl.registerForEvent: unknown interest ops");
    }
}
 
源代码28 项目: openjdk-8   文件: SelectorImpl.java
public void registerInterestOps(EventHandler eventHandler)
{
    if (orb.transportDebugFlag) {
        dprint(".registerInterestOps:-> " + eventHandler);
    }

    SelectionKey selectionKey = eventHandler.getSelectionKey();
    if (selectionKey.isValid()) {
        int ehOps = eventHandler.getInterestOps();
        SelectionKeyAndOp keyAndOp = new SelectionKeyAndOp(selectionKey, ehOps);
        synchronized(interestOpsList) {
            interestOpsList.add(keyAndOp);
        }
        // tell Selector Thread there's an update to a SelectorKey's Ops
        selector.wakeup();
    }
    else {
        wrapper.selectionKeyInvalid(eventHandler.toString());
        if (orb.transportDebugFlag) {
            dprint(".registerInterestOps: EventHandler SelectionKey not valid " + eventHandler);
        }
    }

    if (orb.transportDebugFlag) {
        dprint(".registerInterestOps:<- ");
    }
}
 
源代码29 项目: JDKSourceCode1.8   文件: SelectorImpl.java
private void clearDeferredRegistrations() {
    synchronized (deferredRegistrations) {
        int deferredListSize = deferredRegistrations.size();
        if (orb.transportDebugFlag) {
            dprint(".clearDeferredRegistrations:deferred list size == " + deferredListSize);
        }
        for (int i = 0; i < deferredListSize; i++) {
            EventHandler eventHandler =
                (EventHandler)deferredRegistrations.get(i);
            if (orb.transportDebugFlag) {
                dprint(".clearDeferredRegistrations: " + eventHandler);
            }
            SelectableChannel channel = eventHandler.getChannel();
            SelectionKey selectionKey = null;

            try {
                if (orb.transportDebugFlag) {
                    dprint(".clearDeferredRegistrations:close channel == "
                            + channel);
                    dprint(".clearDeferredRegistrations:close channel class == "
                            + channel.getClass().getName());
                }
                channel.close();
                selectionKey = eventHandler.getSelectionKey();
                if (selectionKey != null) {
                    selectionKey.cancel();
                    selectionKey.attach(null);
                }
            } catch (IOException ioEx) {
                if (orb.transportDebugFlag) {
                    dprint(".clearDeferredRegistrations: ", ioEx);
                }
            }
        }
        deferredRegistrations.clear();
    }
}
 
源代码30 项目: JDKSourceCode1.8   文件: SelectorImpl.java
private void handleDeferredRegistrations()
{
    synchronized (deferredRegistrations) {
        int deferredListSize = deferredRegistrations.size();
        for (int i = 0; i < deferredListSize; i++) {
            EventHandler eventHandler =
                (EventHandler)deferredRegistrations.get(i);
            if (orb.transportDebugFlag) {
                dprint(".handleDeferredRegistrations: " + eventHandler);
            }
            SelectableChannel channel = eventHandler.getChannel();
            SelectionKey selectionKey = null;
            try {
                selectionKey =
                    channel.register(selector,
                                     eventHandler.getInterestOps(),
                                     (Object)eventHandler);
            } catch (ClosedChannelException e) {
                if (orb.transportDebugFlag) {
                    dprint(".handleDeferredRegistrations: ", e);
                }
            }
            eventHandler.setSelectionKey(selectionKey);
        }
        deferredRegistrations.clear();
    }
}