Hi, I am not convinced by the NIO buffering that is used on output. Due to concurrent access issues I couldn't use it in NIO 2, but then I cannot see either what it does to justify using a more complex structure over a simpler array list.
If the idea was to reuse buffers (which it doesn't), there is no option except using a static buffer pool. Was that the original general idea around this deque structure ? Then the upgrade buffering is even more basic, but is probably not a performance issue, the current code is likely fast enough since it is so lightweight. Rémy