- Timestamp:
- Aug 30, 2013 10:10:27 AM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 88568
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/solaris/timer-r0drv-solaris.c
r48182 r48185 141 141 NOREF(pvUser2); 142 142 143 if ( pTimer->fSuspended144 && pTimer->interval == 0)145 return;143 /* Make sure one-shots do not fire another time. */ 144 Assert( !pTimer->fSuspended 145 || pTimer->interval != 0); 146 146 147 147 /* For one-shot specific timers, allow RTTimer to restart them. */ 148 /** @todo cyclic_reprogram() to CY_INFINITY? */149 148 if (pTimer->interval == 0) 150 149 pTimer->fSuspended = true; … … 172 171 if (pTimer->pSingleTimer) 173 172 { 174 if ( pTimer->fSuspended175 && pTimer->interval == 0)176 return;173 /* Make sure one-shots do not fire another time. */ 174 Assert( !pTimer->fSuspended 175 || pTimer->interval != 0); 177 176 178 177 /* For specific timers, we might fire on the wrong CPU between cyclic_add() and cyclic_bind(). … … 186 185 187 186 /* For one-shot any-cpu timers, allow RTTimer to restart them. */ 188 /** @todo cyclic_reprogram() to CY_INFINITY? */189 187 if (pTimer->interval == 0) 190 188 pTimer->fSuspended = true; … … 387 385 if (pTimer->interval == 0) 388 386 { 389 /* cylic_add() comment: "The caller is responsible for assuring that cyt_when + cyt_interval <= INT64_MAX" */ 390 pSingleTimer->hFireTime.cyt_interval = INT64_MAX - pSingleTimer->hFireTime.cyt_when; 387 /* 388 * cylic_add() comment: "The caller is responsible for assuring that cyt_when + cyt_interval <= INT64_MAX" 389 * but it contradicts itself because cyclic_reprogram() updates only the interval and accepts CY_INFINITY as 390 * a valid special value. See cyclic_fire(). 391 */ 392 pSingleTimer->hFireTime.cyt_interval = CY_INFINITY; 391 393 } 392 394 else
Note:
See TracChangeset
for help on using the changeset viewer.