- Timestamp:
- Jun 9, 2010 5:49:04 PM (15 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/PDMAsyncCompletionFile.cpp
r30111 r30131 182 182 int rc; 183 183 184 LogFlowFunc(("pAioMgr=%#p pEndpoint=%#p{%s}\n", pAioMgr, pEndpoint, pEndpoint->Core.pszUri)); 185 186 /* Update the assigned I/O manager. */ 187 ASMAtomicWritePtr(&pEndpoint->pAioMgr, pAioMgr); 188 184 189 rc = RTCritSectEnter(&pAioMgr->CritSectBlockingEvent); 185 190 AssertRCReturn(rc, rc); … … 187 192 ASMAtomicWritePtr(&pAioMgr->BlockingEventData.AddEndpoint.pEndpoint, pEndpoint); 188 193 rc = pdmacFileAioMgrWaitForBlockingEvent(pAioMgr, PDMACEPFILEAIOMGRBLOCKINGEVENT_ADD_ENDPOINT); 194 ASMAtomicWritePtr(&pAioMgr->BlockingEventData.AddEndpoint.pEndpoint, NULL); 189 195 190 196 RTCritSectLeave(&pAioMgr->CritSectBlockingEvent); 191 192 if (RT_SUCCESS(rc))193 ASMAtomicWritePtr(&pEndpoint->pAioMgr, pAioMgr);194 197 195 198 return rc; … … 205 208 ASMAtomicWritePtr(&pAioMgr->BlockingEventData.RemoveEndpoint.pEndpoint, pEndpoint); 206 209 rc = pdmacFileAioMgrWaitForBlockingEvent(pAioMgr, PDMACEPFILEAIOMGRBLOCKINGEVENT_REMOVE_ENDPOINT); 210 ASMAtomicWritePtr(&pAioMgr->BlockingEventData.RemoveEndpoint.pEndpoint, NULL); 207 211 208 212 RTCritSectLeave(&pAioMgr->CritSectBlockingEvent); … … 220 224 ASMAtomicWritePtr(&pAioMgr->BlockingEventData.CloseEndpoint.pEndpoint, pEndpoint); 221 225 rc = pdmacFileAioMgrWaitForBlockingEvent(pAioMgr, PDMACEPFILEAIOMGRBLOCKINGEVENT_CLOSE_ENDPOINT); 226 ASMAtomicWritePtr(&pAioMgr->BlockingEventData.CloseEndpoint.pEndpoint, NULL); 222 227 223 228 RTCritSectLeave(&pAioMgr->CritSectBlockingEvent); … … 655 660 /* No configuration supplied, set defaults */ 656 661 pEpClassFile->enmEpBackendDefault = PDMACFILEEPBACKEND_NON_BUFFERED; 662 pEpClassFile->enmMgrTypeOverride = PDMACEPFILEMGRTYPE_ASYNC; 657 663 } 658 664 } … … 921 927 rc = pdmacFileEpCacheFlush(pEpFile); 922 928 AssertRC(rc); 923 pdmacFileEpCacheDestroy(pEpFile);924 929 } 925 930 … … 931 936 AssertMsg(pEpFile->cbFile == pEpFile->cbEndpoint, 932 937 ("Endpoint and real file size should match now!\n")); 938 939 /* Destroy any per endpoint cache data */ 940 if (pEpFile->fCaching) 941 pdmacFileEpCacheDestroy(pEpFile); 933 942 934 943 /* -
trunk/src/VBox/VMM/PDMAsyncCompletionFileFailsafe.cpp
r29250 r30131 210 210 } 211 211 212 ASMAtomicWriteBool(&pAioMgr->fBlockingEventPending, false); 213 pAioMgr->enmBlockingEvent = PDMACEPFILEAIOMGRBLOCKINGEVENT_INVALID; 214 212 215 /* Release the waiting thread. */ 213 216 rc = RTSemEventSignal(pAioMgr->EventSemBlock);
Note:
See TracChangeset
for help on using the changeset viewer.