The reaper thread when it wakes up, call cancelReaper in abort method of class NettyResponseFuture. This method cancel the reaper future by calling :
reaperFuture.cancel(true);
The parameter "true" indicates that the thread should be interrupted. As it's the reaper thread, it will only flag the thread as interrupted, and thus leads to some strange behavior afterwards.
I think that the reaper should not call this method and in addition to the bug #247, if the worker thread and reaper thread run at the same time, the worker thread should not call cancelReaper if it's the reaper thread which invokes onThrowable method of the async client.
The reaper thread when it wakes up, call cancelReaper in abort method of class NettyResponseFuture. This method cancel the reaper future by calling :
The parameter "true" indicates that the thread should be interrupted. As it's the reaper thread, it will only flag the thread as interrupted, and thus leads to some strange behavior afterwards. I think that the reaper should not call this method and in addition to the bug #247, if the worker thread and reaper thread run at the same time, the worker thread should not call cancelReaper if it's the reaper thread which invokes onThrowable method of the async client.