Changeset 38613 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Sep 2, 2011 12:32:23 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/VMReq.cpp
r35346 r38613 1068 1068 * 1069 1069 * We do not repeat the outer loop if we've got an informational status code 1070 * since that code needs processing by our caller .1070 * since that code needs processing by our caller (usually EM). 1071 1071 */ 1072 1072 int rc = VINF_SUCCESS; 1073 while (rc <= VINF_SUCCESS)1073 for (;;) 1074 1074 { 1075 1075 /* … … 1101 1101 1102 1102 /* 1103 * Process the request. 1104 * Note! The status code handling here extremely important and yet very 1105 * fragile. 1103 * Process the request 1106 1104 */ 1107 1105 STAM_COUNTER_INC(&pUVM->vm.s.StatReqProcessed); 1108 1106 int rc2 = vmR3ReqProcessOneU(pUVM, pReq); 1109 1107 if ( rc2 >= VINF_EM_FIRST 1110 && rc2 <= VINF_EM_LAST 1111 && ( rc == VINF_SUCCESS 1112 || rc2 < rc) ) 1108 && rc2 <= VINF_EM_LAST) 1109 { 1113 1110 rc = rc2; 1114 /** @todo may have to abort processing to propagate EM scheduling status codes 1115 * up to the caller... See the ugly hacks after VMMR3EmtRendezvousFF 1116 * and VMR3ReqProcessU in EM.cpp. */ 1111 break; 1112 } 1117 1113 } 1118 1114
Note:
See TracChangeset
for help on using the changeset viewer.