Closed accelerated closed 4 years ago
Yes it has gotten a bit out of hand with too many features instead of keeping a strict delineation of functionality and split it into smaller classes. The class API however is quite clean so that's always good. I may revisit the inner implementation the future or perhaps bring back the original design under some other name and keep this one as-is (if you want). Not too many use it so hopefully it's not causing instability elsewhere. I think however that admin API would have higher priority as future work.
Yeah, the admin API should be the next thing although I probably won't for on that in the near future.
Two issues:
std::deque::size()
should be guarded as it's not thread safe. The size() is computed via pointer diff (finish-start) of the queue itself and it returns garbage in a multi-threaded access scenario.promise_already_satisfied
exception. This in itself is not an error, however it prevents thepending_acks
from being properly decremented and the flush eventually blocks forever as thepending_acks
mismatch.@mfontanini please prioritize this if you can. Much appreciated!!