6429289: (se) sun.nio.ch.SelectorImpl.processDeregisterQueue creates excessive garbage

Check if the cancelledKeys is empty or not before creating iterator

Reviewed-by: alanb
This commit is contained in:
Xueming Shen 2008-07-16 15:24:15 -07:00
parent 61dd937d11
commit c09d716d34

View File

@ -142,6 +142,7 @@ abstract class SelectorImpl
// Precondition: Synchronized on this, keys, and selectedKeys
Set cks = cancelledKeys();
synchronized (cks) {
if (!cks.isEmpty()) {
Iterator i = cks.iterator();
while (i.hasNext()) {
SelectionKeyImpl ski = (SelectionKeyImpl)i.next();
@ -158,6 +159,7 @@ abstract class SelectorImpl
}
}
}
}
protected abstract void implDereg(SelectionKeyImpl ski) throws IOException;