Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Following our discussion in #150 and #160
This PR removes the fixed pool in exchange for writing directly to the clients via client-specific buffered write channels. In the event that a client's write buffer is full, in such an event as a slow reading client, the message is dropped and the new OnPublishDropped hook is called. If the message was QoS 1 or 2, the inflight is rolled back and the message is treated as unattempted.
Also corrects tests and updates benchmarks. Paho is passing.
cc @thedevop thank you for your insights! If you could take a look and see if this PR is appropriate, I would be very grateful :) My apologies for the delay!