I'm tempted to suggest -Wno-mismatched-tags to quiet clang's curious insistence that struct X is not a synonym for class X.
I've commented on a couple of oddities above - my biggest concern being that if we really need to move "whole_message" that there is an existing race condition (and that should be fixed instead of hacking around it).
Overall, the MP looks reasonable, but is a bit big for me to feel confident I understand it all.
I'm tempted to suggest -Wno-mismatched -tags to quiet clang's curious insistence that struct X is not a synonym for class X.
I've commented on a couple of oddities above - my biggest concern being that if we really need to move "whole_message" that there is an existing race condition (and that should be fixed instead of hacking around it).
Overall, the MP looks reasonable, but is a bit big for me to feel confident I understand it all.