That won't work; server::start() gets called on the service manager thread,
too, immediately after the ctor.
Merely move async_accept to another function, then call
io_service_.post(...). This way async_accept will be performed on an
io_service thread.