On Tuesday, 9 September 2014 at 20:47:24 UTC, Sean Kelly wrote:
Incoming messages are appended to the list and removed from the
middle during receive, so a list seemed like a natural
representation. This could be optimized by putting a "next" ptr
inside the Message object itself and make the list literally
just
a list of messages instead of a list of nodes referencing
messages. That would eliminate half of the allocations and not
have any of the problems that a ring buffer brings with removals
from the middle or growing the list size.
Oops... I'd forgotten that Message is constructed in-place within
a Node, and so this wouldn't save any allocations. It still
might be a bit of an optimization, but only to save a bit of
copying.