`AsyncHttpClient.close()` and `NettyAsyncHttpProvider.close()` (and probably other providers) should prevent multiple invocations by using CAS like this: ``` java if (isClosed.compareAndSet(false, true) { // release resources } ``` p.s. also `AsyncHttpClient.closeAsynchronously()` can just delegate to `AsyncHttpClient.this.close()` from `Runnable`.