- Timestamp:
- Oct 26, 2009 12:41:34 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 53943
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Storage/DevBusLogic.cpp
r24067 r24070 2270 2270 */ 2271 2271 u64Start = RTTimeMilliTS(); 2272 do2272 for (;;) 2273 2273 { 2274 2274 fIdle = true; … … 2284 2284 } 2285 2285 } 2286 if (RTTimeMilliTS() - u64Start >= cMillies) 2286 if ( fIdle 2287 || RTTimeMilliTS() - u64Start >= cMillies) 2287 2288 break; 2288 2289 2289 2290 /* Sleep for a bit. */ 2290 RTThreadSleep(100); 2291 } while (!fIdle);2291 RTThreadSleep(100); /** @todo wait on something which can be woken up. 100ms is too long for teleporting VMs! */ 2292 } 2292 2293 2293 2294 return fIdle; 2294 }2295 2296 static DECLCALLBACK(int) buslogicSaveLoadPrep(PPDMDEVINS pDevIns, PSSMHANDLE pSSM)2297 {2298 PBUSLOGIC pBusLogic = PDMINS_2_DATA(pDevIns, PBUSLOGIC);2299 2300 /* Wait that no task is pending on any device. */2301 if (!buslogicWaitForAsyncIOFinished(pBusLogic, 20000))2302 {2303 AssertLogRelMsgFailed(("BusLogic: There are still tasks outstanding\n"));2304 return VERR_TIMEOUT;2305 }2306 2307 return VINF_SUCCESS;2308 2295 } 2309 2296 … … 2317 2304 2318 2305 return VINF_SSM_DONT_CALL_AGAIN; 2306 } 2307 2308 static DECLCALLBACK(int) buslogicSaveLoadPrep(PPDMDEVINS pDevIns, PSSMHANDLE pSSM) 2309 { 2310 PBUSLOGIC pBusLogic = PDMINS_2_DATA(pDevIns, PBUSLOGIC); 2311 2312 /* Wait that no task is pending on any device. */ 2313 if (!buslogicWaitForAsyncIOFinished(pBusLogic, 20000)) 2314 { 2315 AssertLogRelMsgFailed(("BusLogic: There are still tasks outstanding\n")); 2316 return VERR_TIMEOUT; 2317 } 2318 2319 return VINF_SUCCESS; 2319 2320 } 2320 2321
Note:
See TracChangeset
for help on using the changeset viewer.