Result Socket::ConnectTo(const std::string& host, uint16_t port) { // Not implemented auto addr = resolver_.resolve(host, std::to_string(port)); //asio::connect(socket_, addr); for (asio::ip::tcp::endpoint ep_iter : addr) { Fiber* fiber_ptr = GetCurrentFiber(); socket_.async(ep_iter, [fiber_ptr]() { fiber_ptr->SetState(FiberState::Runnable); GetCurrentScheduler()->Reschedule(fiber_ptr); } ); Wait(); } }