Please help review this PR which improves `HttpServer::stop` termination timing to better fit user expectations.
This PR: * Makes `ServerImpl::stop` continue without delay when there are no active exchanges during shutdown * Attempts to interrupt the dispatcher thread before joining it, giving long-living interruptible exchanges a chance to finish early * Adds testing for boundary conditions with or without an active exchange, delay occurring before exhange completes and exchange completing before delay. Additinally, `ServerImpl::stop` is updated to use `System::nanotime` instead of `System::currentTimeMillis` when calculating wait times. The test relies on timing to assert the order of events. Not perfect, but it seems to work. (This part of the code base is rather new to me. A bit of hand-holding should be expected when reviewing this PR) ------------- Commit messages: - Improve shutdown sequence in HttpServerImpl::stop Changes: https://git.openjdk.org/jdk/pull/24467/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24467&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8304065 Stats: 237 lines in 2 files changed: 231 ins; 3 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/24467.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/24467/head:pull/24467 PR: https://git.openjdk.org/jdk/pull/24467