jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java
changeset 2433 9f0ab7f726b8
parent 2057 3acf8e5e2ca0
child 5506 202f599c92aa
equal deleted inserted replaced
2427:f35f516befc3 2433:9f0ab7f726b8
   137         }
   137         }
   138 
   138 
   139         FileDispatcherImpl.closeIntFD(fd0);
   139         FileDispatcherImpl.closeIntFD(fd0);
   140         FileDispatcherImpl.closeIntFD(fd1);
   140         FileDispatcherImpl.closeIntFD(fd1);
   141 
   141 
   142         pollWrapper.release(fd0);
       
   143         pollWrapper.closeEPollFD();
   142         pollWrapper.closeEPollFD();
   144         // it is possible
   143         // it is possible
   145         selectedKeys = null;
   144         selectedKeys = null;
   146 
   145 
   147         // Deregister channels
   146         // Deregister channels
   160     }
   159     }
   161 
   160 
   162     protected void implRegister(SelectionKeyImpl ski) {
   161     protected void implRegister(SelectionKeyImpl ski) {
   163         if (closed)
   162         if (closed)
   164             throw new ClosedSelectorException();
   163             throw new ClosedSelectorException();
   165         int fd = IOUtil.fdVal(ski.channel.getFD());
   164         SelChImpl ch = ski.channel;
   166         fdToKey.put(Integer.valueOf(fd), ski);
   165         fdToKey.put(Integer.valueOf(ch.getFDVal()), ski);
   167         pollWrapper.add(fd);
   166         pollWrapper.add(ch);
   168         keys.add(ski);
   167         keys.add(ski);
   169     }
   168     }
   170 
   169 
   171     protected void implDereg(SelectionKeyImpl ski) throws IOException {
   170     protected void implDereg(SelectionKeyImpl ski) throws IOException {
   172         assert (ski.getIndex() >= 0);
   171         assert (ski.getIndex() >= 0);
   173         int fd = ski.channel.getFDVal();
   172         SelChImpl ch = ski.channel;
       
   173         int fd = ch.getFDVal();
   174         fdToKey.remove(Integer.valueOf(fd));
   174         fdToKey.remove(Integer.valueOf(fd));
   175         pollWrapper.release(fd);
   175         pollWrapper.release(ch);
   176         ski.setIndex(-1);
   176         ski.setIndex(-1);
   177         keys.remove(ski);
   177         keys.remove(ski);
   178         selectedKeys.remove(ski);
   178         selectedKeys.remove(ski);
   179         deregister((AbstractSelectionKey)ski);
   179         deregister((AbstractSelectionKey)ski);
   180         SelectableChannel selch = ski.channel();
   180         SelectableChannel selch = ski.channel();
   183     }
   183     }
   184 
   184 
   185     void putEventOps(SelectionKeyImpl sk, int ops) {
   185     void putEventOps(SelectionKeyImpl sk, int ops) {
   186         if (closed)
   186         if (closed)
   187             throw new ClosedSelectorException();
   187             throw new ClosedSelectorException();
   188         int fd = IOUtil.fdVal(sk.channel.getFD());
   188         pollWrapper.setInterest(sk.channel, ops);
   189         pollWrapper.setInterest(fd, ops);
       
   190     }
   189     }
   191 
   190 
   192     public Selector wakeup() {
   191     public Selector wakeup() {
   193         synchronized (interruptLock) {
   192         synchronized (interruptLock) {
   194             if (!interruptTriggered) {
   193             if (!interruptTriggered) {