
On Thu, 07 Jan 2010 12:22:39 +0100, Tacheon
In the HTTP Server 3 (http://tinyurl.com/yh95d2b) example of the asio documentation strands are used to synchronize the invocation of completion handlers? But why are they necessary here? As far as I get it, the handlers are invoked in strict sequential order for each distinct connection (http://tinyurl.com/ybohynd). Each connection has its own set of resources so synchronization shouldn't be necessary, should it?
I quickly checked the connection class and couldn't find a reason either why strand is used here. The comment in connection.hpp (///Strand to ensure the connection's handlers are not called concurrently) doesn't make any sense as a new asynchronous operation is only started when another ends. Maybe the strand is left over from an earlier version of the HTTP server? Boris