The key to solve last problem is post a shared_ptr which hold that
object(normally connection) to io_service, so the queued handler will
not call after object destroyed because the handler still hold that
object