Future에 Timeout 적용하기
22 Jan 2019 | C++Future에 Timeout 적용
future에 Timeout을 적용하는 예제입니다.
ROS 2.0 관련 코드라 직접적으로 동작은 되지 않겠지만, wait_until()
을 이용해서 특정 시간을 기다리는 점에서는 사용방법이 동일합니다.
thread t1([client]() { while (true) { auto a = 0; auto b = 0; cout << "Input two number: " << endl; cin >> a >> b; auto req = make_shared<Add::Request>(); req->a = a; req->b = b; auto tp = std::chrono::system_clock::now() + std::chrono::seconds(3); auto request = client->async_send_request(req); auto status = request.wait_until(tp); if (status == future_status::ready) { auto resp = request.get(); cout << "Sum : " << resp->sum << endl; } else { cout << "Timeout !!!" << endl; } } });