- Timestamp:
- Aug 9, 2013 1:12:19 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/nt/timer-r0drv-nt.cpp
r44528 r47637 122 122 if ( !ASMAtomicUoReadBool(&pTimer->fSuspended) 123 123 && pTimer->u32Magic == RTTIMER_MAGIC) 124 { 125 if (!pTimer->u64NanoInterval) 126 ASMAtomicWriteBool(&pTimer->fSuspended, true); 124 127 pTimer->pfnTimer(pTimer, pTimer->pvUser, ++pTimer->aSubTimers[0].iTick); 128 } 125 129 126 130 NOREF(pDpc); NOREF(SystemArgument1); NOREF(SystemArgument2); … … 155 159 if ( !ASMAtomicUoReadBool(&pTimer->fSuspended) 156 160 && pTimer->u32Magic == RTTIMER_MAGIC) 161 { 162 if (!pTimer->u64NanoInterval) 163 ASMAtomicWriteBool(&pTimer->fSuspended, true); 157 164 pTimer->pfnTimer(pTimer, pTimer->pvUser, ++pSubTimer->iTick); 165 } 158 166 159 167 NOREF(pDpc); NOREF(SystemArgument1); NOREF(SystemArgument2); … … 200 208 KeInsertQueueDpc(&pTimer->aSubTimers[iCpu].NtDpc, 0, 0); 201 209 210 if (!pTimer->u64NanoInterval) 211 ASMAtomicWriteBool(&pTimer->fSuspended, true); 202 212 pTimer->pfnTimer(pTimer, pTimer->pvUser, ++pSubTimer->iTick); 203 213 } … … 238 248 LARGE_INTEGER DueTime; 239 249 DueTime.QuadPart = -(int64_t)(u64First / 100); /* Relative, NT time. */ 240 if ( DueTime.QuadPart)250 if (!DueTime.QuadPart) 241 251 DueTime.QuadPart = -1; 242 252 253 unsigned cSubTimers = pTimer->fOmniTimer ? pTimer->cSubTimers : 1; 254 for (unsigned iCpu = 0; iCpu < cSubTimers; iCpu++) 255 pTimer->aSubTimers[iCpu].iTick = 0; 243 256 ASMAtomicWriteBool(&pTimer->fSuspended, false); 244 257 KeSetTimerEx(&pTimer->NtTimer, DueTime, ulInterval, pMasterDpc);
Note:
See TracChangeset
for help on using the changeset viewer.