6823609: (se) Selector.select hangs on Windows under load

This is a hang in the Windows select-based Selector that has been haunting the woods since 1.4.1. This Selector employs a helper thread per 1023 registered channels. If the number of required helpers decreases and immediately increases then it possible, under load conditions, for a redundant helper to poll and finish a cycle instead of terminating. This can cause the main Selector thread to wakeup prematurely or to hang because the finished thread count goes negative. The fix marks redundant threads as zombies so that they terminate without interference.

The webrev is here:
 http://cr.openjdk.java.net/~alanb/6823609/webrev.00/

Thanks,
Alan.

Reply via email to