Please review this patch that makes sure KeepAliveCache does not block all threads while closing sockets.
Changes: - get operation no longer closes sockets; if there's no socket that is recent enough, get returns null and lets the cleaner thread close the sockets - put operation closes sockets without holding the cache lock. Additionally, if the cache is full, it places the new connection in the cache and removes the oldest connection. - the cleaner thread creates a list of connections to close, and then closes them after releasing the cache lock - additionally, we set the socket timeout to 1 millisecond before calling socket.close The new test fails with `Wait for second request timed out` without this patch, passes after the changes. Tiers 1-3 clean. ------------- Commit messages: - Use shorter timeout when closing connection - Release locks before closing connections - Close connections outside KAC lock - Remove unused method Changes: https://git.openjdk.org/jdk/pull/10401/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10401&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8293562 Stats: 338 lines in 3 files changed: 272 ins; 40 del; 26 mod Patch: https://git.openjdk.org/jdk/pull/10401.diff Fetch: git fetch https://git.openjdk.org/jdk pull/10401/head:pull/10401 PR: https://git.openjdk.org/jdk/pull/10401
