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 }
|