IBAT_PATH_BLOB path;\r
HRESULT hr;\r
\r
- hr = IBAT::Resolve(&id->route.addr.src_addr, &id->route.addr.dst_addr, &path);\r
+ do {\r
+ hr = IBAT::Resolve(&id->route.addr.src_addr, &id->route.addr.dst_addr, &path);\r
+ if (hr != E_PENDING) {\r
+ break;\r
+ }\r
+ timeout_ms -= 10;\r
+ if (timeout_ms > 0)\r
+ Sleep(10);\r
+ } while (timeout_ms > 0);\r
+\r
if (FAILED(hr)) {\r
return hr;\r
}\r
IBAT_PATH_BLOB path;\r
HRESULT hr;\r
\r
- hr = IBAT::Resolve(&id->route.addr.src_addr, &id->route.addr.dst_addr, &path);\r
+ do {\r
+ hr = IBAT::Resolve(&id->route.addr.src_addr, &id->route.addr.dst_addr, &path);\r
+ if (hr != E_PENDING) {\r
+ break;\r
+ }\r
+ timeout_ms -= 10;\r
+ if (timeout_ms > 0)\r
+ Sleep(10);\r
+ } while (timeout_ms > 0);\r
+\r
if (FAILED(hr)) {\r
return hr;\r
}\r