Here is an example: https://www.boost.org/doc/libs/1_74_0/libs/beast/example/websocket/server/chat-multi/websocket_session.cpp
You can see that they have some queue’ing logic in order to only have one async_write
at a time.
My question: is this necessary if we know that the underlying executer is guaranteed to be serialized (via strand
)?
From my understanding, this falls under case 2 of this answer, so I am curious why the queue serialization was necessary in the example.