src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java

Print this page




 164         fdToKey.put(Integer.valueOf(ch.getFDVal()), ski);
 165         pollWrapper.add(ch);
 166         keys.add(ski);
 167     }
 168 
 169     protected void implDereg(SelectionKeyImpl ski) throws IOException {
 170         assert (ski.getIndex() >= 0);
 171         SelChImpl ch = ski.channel;
 172         int fd = ch.getFDVal();
 173         fdToKey.remove(Integer.valueOf(fd));
 174         pollWrapper.release(ch);
 175         ski.setIndex(-1);
 176         keys.remove(ski);
 177         selectedKeys.remove(ski);
 178         deregister((AbstractSelectionKey)ski);
 179         SelectableChannel selch = ski.channel();
 180         if (!selch.isOpen() && !selch.isRegistered())
 181             ((SelChImpl)selch).kill();
 182     }
 183 
 184     void putEventOps(SelectionKeyImpl sk, int ops) {
 185         if (closed)
 186             throw new ClosedSelectorException();
 187         pollWrapper.setInterest(sk.channel, ops);
 188     }
 189 
 190     public Selector wakeup() {
 191         synchronized (interruptLock) {
 192             if (!interruptTriggered) {
 193                 pollWrapper.interrupt();
 194                 interruptTriggered = true;
 195             }
 196         }
 197         return this;
 198     }
 199 
 200     static {
 201         Util.load();
 202     }
 203 
 204 }


 164         fdToKey.put(Integer.valueOf(ch.getFDVal()), ski);
 165         pollWrapper.add(ch);
 166         keys.add(ski);
 167     }
 168 
 169     protected void implDereg(SelectionKeyImpl ski) throws IOException {
 170         assert (ski.getIndex() >= 0);
 171         SelChImpl ch = ski.channel;
 172         int fd = ch.getFDVal();
 173         fdToKey.remove(Integer.valueOf(fd));
 174         pollWrapper.release(ch);
 175         ski.setIndex(-1);
 176         keys.remove(ski);
 177         selectedKeys.remove(ski);
 178         deregister((AbstractSelectionKey)ski);
 179         SelectableChannel selch = ski.channel();
 180         if (!selch.isOpen() && !selch.isRegistered())
 181             ((SelChImpl)selch).kill();
 182     }
 183 
 184     public void putEventOps(SelectionKeyImpl sk, int ops) {
 185         if (closed)
 186             throw new ClosedSelectorException();
 187         pollWrapper.setInterest(sk.channel, ops);
 188     }
 189 
 190     public Selector wakeup() {
 191         synchronized (interruptLock) {
 192             if (!interruptTriggered) {
 193                 pollWrapper.interrupt();
 194                 interruptTriggered = true;
 195             }
 196         }
 197         return this;
 198     }
 199 
 200     static {
 201         Util.load();
 202     }
 203 
 204 }