https://issues.apache.org/bugzilla/show_bug.cgi?id=45661
Summary: NioBlockingSelector uses all CPU after a socket connection is killed Product: Tomcat 6 Version: 6.0.18 Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: Catalina AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I have an app which runs an embedded Tomcat with nio connector. Using Sysinternals TcpView to close an socket connection to a localhost port, the process spikes to high CPU usage. After I pause the threads, I find out the NioBlockingSelector.BlockPoller is causing the high CPU. In this code fragment, the selector.select(1000) returns without waiting for 1000ms, but the keyCount is zero. I don't know why selector.select(1000) returns immediately in this case. Maybe it is bug in Java, but could this function be changed to prevent the looping in this case? public void run() { while (run) { try { events(); int keyCount = 0; try { int i = wakeupCounter.get(); if (i>0) keyCount = selector.selectNow(); else { wakeupCounter.set(-1); keyCount = selector.select(1000); } -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]