8200458: (se) Readiness information previously recorded in the ready set not preserved

Reviewed-by: bpb, chegar
This commit is contained in:
Alan Bateman 2018-04-05 15:04:09 +01:00
parent d185d65b69
commit 97d7cfb14e
8 changed files with 193 additions and 128 deletions

View file

@ -216,15 +216,12 @@ class KQueueSelectorImpl extends SelectorImpl {
}
if (selectedKeys.contains(ski)) {
// file descriptor may be polled more than once per poll
if (ski.lastPolled != pollCount) {
if (ski.translateAndSetReadyOps(rOps)) {
if (ski.translateAndUpdateReadyOps(rOps)) {
// file descriptor may be polled more than once per poll
if (ski.lastPolled != pollCount) {
numKeysUpdated++;
ski.lastPolled = pollCount;
}
} else {
// ready ops have already been set on this update
ski.translateAndUpdateReadyOps(rOps);
}
} else {
ski.translateAndSetReadyOps(rOps);