- Timestamp:
- Oct 10, 2009 3:01:18 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 53381
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/SSM.cpp
r23649 r23668 2066 2066 2067 2067 if (pStrm->hIoThread != NIL_RTTHREAD) 2068 {2069 2068 ASMAtomicWriteBool(&pStrm->fTerminating, true); 2070 int rc2 = RTSemEventSignal(pStrm->fWrite ? pStrm->hEvtHead : pStrm->hEvtFree); AssertLogRelRC(rc2); 2071 int rc3 = RTThreadWait(pStrm->hIoThread, RT_INDEFINITE_WAIT, NULL); AssertLogRelRC(rc3); 2069 2070 int rc; 2071 if (pStrm->fWrite) 2072 { 2073 int rc2 = RTSemEventSignal(pStrm->hEvtHead); AssertLogRelRC(rc2); 2074 int rc3 = RTThreadWait(pStrm->hIoThread, RT_INDEFINITE_WAIT, NULL); AssertLogRelRC(rc3); 2072 2075 pStrm->hIoThread = NIL_RTTHREAD; 2073 } 2074 2075 int rc = pStrm->pOps->pfnClose(pStrm->pvUser); 2076 if (RT_FAILURE(rc)) 2077 ssmR3StrmSetError(pStrm, rc); 2076 2077 rc = pStrm->pOps->pfnClose(pStrm->pvUser); 2078 if (RT_FAILURE(rc)) 2079 ssmR3StrmSetError(pStrm, rc); 2080 } 2081 else 2082 { 2083 rc = pStrm->pOps->pfnClose(pStrm->pvUser); 2084 if (RT_FAILURE(rc)) 2085 ssmR3StrmSetError(pStrm, rc); 2086 2087 int rc2 = RTSemEventSignal(pStrm->hEvtFree); AssertLogRelRC(rc2); 2088 int rc3 = RTThreadWait(pStrm->hIoThread, RT_INDEFINITE_WAIT, NULL); AssertLogRelRC(rc3); 2089 pStrm->hIoThread = NIL_RTTHREAD; 2090 } 2091 2078 2092 pStrm->pOps = NULL; 2079 2093 pStrm->pvUser = NULL; … … 3612 3626 VM_ASSERT_EMT0(pVM); 3613 3627 AssertMsgReturn( pSSM->enmAfter == SSMAFTER_DESTROY 3614 || pSSM->enmAfter == SSMAFTER_CONTINUE, 3628 || pSSM->enmAfter == SSMAFTER_CONTINUE 3629 || pSSM->enmAfter == SSMAFTER_MIGRATE, 3615 3630 ("%d\n", pSSM->enmAfter), 3616 3631 VERR_INVALID_PARAMETER); … … 4054 4069 VM_ASSERT_EMT0(pVM); 4055 4070 AssertMsgReturn( pSSM->enmAfter == SSMAFTER_DESTROY 4056 || pSSM->enmAfter == SSMAFTER_CONTINUE, 4071 || pSSM->enmAfter == SSMAFTER_CONTINUE 4072 || pSSM->enmAfter == SSMAFTER_MIGRATE, 4057 4073 ("%d\n", pSSM->enmAfter), 4058 4074 VERR_INVALID_PARAMETER); … … 4444 4460 VM_ASSERT_OTHER_THREAD(pVM); 4445 4461 AssertMsgReturn( pSSM->enmAfter == SSMAFTER_DESTROY 4446 || pSSM->enmAfter == SSMAFTER_CONTINUE, 4462 || pSSM->enmAfter == SSMAFTER_CONTINUE 4463 || pSSM->enmAfter == SSMAFTER_MIGRATE, 4447 4464 ("%d\n", pSSM->enmAfter), 4448 4465 VERR_INVALID_PARAMETER); … … 4644 4661 */ 4645 4662 AssertMsgReturn( enmAfter == SSMAFTER_DESTROY 4646 || enmAfter == SSMAFTER_CONTINUE, 4663 || enmAfter == SSMAFTER_CONTINUE 4664 || enmAfter == SSMAFTER_MIGRATE, 4647 4665 ("%d\n", enmAfter), 4648 4666 VERR_INVALID_PARAMETER); -
trunk/src/VBox/VMM/VM.cpp
r23598 r23668 1587 1587 * Validate input. 1588 1588 */ 1589 AssertPtr(pszFilename); 1589 AssertPtrNull(pszFilename); 1590 AssertPtrNull(pStreamOps); 1590 1591 AssertPtr(pVM); 1591 Assert(enmAfter == SSMAFTER_DESTROY || enmAfter == SSMAFTER_CONTINUE); 1592 Assert( enmAfter == SSMAFTER_DESTROY 1593 || enmAfter == SSMAFTER_CONTINUE 1594 || enmAfter == SSMAFTER_MIGRATE); 1592 1595 AssertPtr(ppSSM); 1593 1596 *ppSSM = NULL;
Note:
See TracChangeset
for help on using the changeset viewer.