Previous to this change (https://github.com/clojure/core.async/commit/a690c4f3b7bf9ae9e7bdc899c030955d5933042d), the executor service used by core async was accessible via a var. While the var was not part of the public api, it is now completely inaccessible as a resource that can be managed. Most importantly, it cannot be shut down without shutting down the JVM. This creates all kinds of operational difficulties and side effects for managing the JVM, especially with class loaders.
It would be helpful to at least lift out the executor back to a var - the way it was before. Ideally, core async would expose the executor as part of the API, where the ordinary ExecutorService interface would apply, or at least have a shutdown function.