Changeset 6409 in vbox
- Timestamp:
- Jan 21, 2008 2:09:22 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 27368
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/TMAll.cpp
r6296 r6409 508 508 509 509 case TMTIMERSTATE_PENDING_SCHEDULE: 510 case TMTIMERSTATE_PENDING_STOP_SCHEDULE: 510 511 if (tmTimerTry(pTimer, TMTIMERSTATE_PENDING_SCHEDULE_SET_EXPIRE, enmState)) 511 512 { 512 513 Assert(!pTimer->offPrev); 513 514 Assert(!pTimer->offNext); 514 pTimer->u64Expire = u64Expire;515 TM_SET_STATE(pTimer, TMTIMERSTATE_PENDING_SCHEDULE);516 tmSchedule(pTimer);517 STAM_PROFILE_STOP(&pTimer->CTXALLSUFF(pVM)->tm.s.CTXALLSUFF(StatTimerSet), a);518 return VINF_SUCCESS;519 }520 break;521 522 523 case TMTIMERSTATE_PENDING_STOP_SCHEDULE:524 if (tmTimerTry(pTimer, TMTIMERSTATE_PENDING_SCHEDULE_SET_EXPIRE, enmState))525 {526 /* The timer is possibly being excluded from the active list atm */527 ///Assert(!pTimer->offPrev);528 ///Assert(!pTimer->offNext);529 515 pTimer->u64Expire = u64Expire; 530 516 TM_SET_STATE(pTimer, TMTIMERSTATE_PENDING_SCHEDULE); … … 1171 1157 TMTIMER_SET_NEXT(pPrev, pNext); 1172 1158 else 1173 { 1159 { 1174 1160 TMTIMER_SET_HEAD(pQueue, pNext); 1175 1161 pQueue->u64Expire = pNext ? pNext->u64Expire : INT64_MAX; … … 1181 1167 /* fall thru */ 1182 1168 } 1183 1169 1184 1170 /* 1185 1171 * Schedule timer (insert into the active list). … … 1227 1213 return; 1228 1214 } 1229 1215 1230 1216 /* 1231 1217 * Stop the timer in active list. … … 1251 1237 /* fall thru */ 1252 1238 } 1253 1239 1254 1240 /* 1255 1241 * Stop the timer (not on the active list). … … 1260 1246 break; 1261 1247 return; 1262 1248 1263 1249 /* 1264 1250 * Stop & destroy the timer. … … 1281 1267 /* fall thru */ 1282 1268 } 1283 1269 1284 1270 /* 1285 1271 * Destroy the timer. … … 1291 1277 const PTMTIMER pBigPrev = (PTMTIMER)(pTimer->pBigPrev ? MMHyperR3ToCC(pVM, pTimer->pBigPrev) : NULL); 1292 1278 const PTMTIMER pBigNext = (PTMTIMER)(pTimer->pBigNext ? MMHyperR3ToCC(pVM, pTimer->pBigNext) : NULL); 1293 1279 1294 1280 /* unlink from created list */ 1295 1281 if (pBigPrev) … … 1301 1287 pTimer->pBigNext = 0; 1302 1288 pTimer->pBigPrev = 0; 1303 1289 1304 1290 /* free */ 1305 1291 Log2(("TM: Inserting %p into the free list ahead of %p!\n", pTimer, pVM->tm.s.pFree)); … … 1309 1295 return; 1310 1296 } 1311 1297 1312 1298 /* 1313 1299 * Postpone these until they get into the right state. … … 1318 1304 STAM_COUNTER_INC(&pTimer->CTXALLSUFF(pVM)->tm.s.CTXALLSUFF(StatPostponed)); 1319 1305 return; 1320 1306 1321 1307 /* 1322 1308 * None of these can be in the schedule.
Note:
See TracChangeset
for help on using the changeset viewer.