I have a copy of asio::io_service::strand
.
Are the copied strand and its source different executors? In other words is it possible that a function passed to the copied strand and another function passed to the source strand will be executed in the same time by two different threads?
Or are both such strands logically "one strand" meaning no work passed to any of them will be executed together with other work passed to them?
See example
asio::io_service ioService;
asio::io_service::strand strandFromIoService{ioService};
asio::io_service::strand strandFromStrand{strandFromIoService};
strandFromIoService.post(boost::bind(&firstFunction));
strandFromStrand.post(boost::bind(&secondFunction));
// then use a pool of threads to service io_service ...
// can firstFunction and secondFunction be executed in one time?