equal
deleted
inserted
replaced
154 SelectionKeyImpl previous = fdToKey.putIfAbsent(fd, ski); |
154 SelectionKeyImpl previous = fdToKey.putIfAbsent(fd, ski); |
155 assert (previous == null) || (previous == ski); |
155 assert (previous == null) || (previous == ski); |
156 |
156 |
157 int newEvents = ski.translateInterestOps(); |
157 int newEvents = ski.translateInterestOps(); |
158 int registeredEvents = ski.registeredEvents(); |
158 int registeredEvents = ski.registeredEvents(); |
|
159 |
|
160 // DatagramChannelImpl::disconnect has reset socket |
|
161 if (ski.getAndClearReset() && registeredEvents != 0) { |
|
162 KQueue.register(kqfd, fd, EVFILT_READ, EV_DELETE); |
|
163 registeredEvents = 0; |
|
164 } |
|
165 |
159 if (newEvents != registeredEvents) { |
166 if (newEvents != registeredEvents) { |
160 |
167 |
161 // add or delete interest in read events |
168 // add or delete interest in read events |
162 if ((registeredEvents & Net.POLLIN) != 0) { |
169 if ((registeredEvents & Net.POLLIN) != 0) { |
163 if ((newEvents & Net.POLLIN) == 0) { |
170 if ((newEvents & Net.POLLIN) == 0) { |