Changeset 5165 in vbox for trunk/src/VBox/Runtime/r0drv/nt
- Timestamp:
- Oct 5, 2007 1:32:50 PM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 25064
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/nt/semaphore-r0drv-nt.cpp
r4071 r5165 141 141 142 142 143 RTDECL(int) RTSemEventWait(RTSEMEVENT EventSem, unsigned cMillies)143 static int rtSemEventWait(RTSEMEVENT EventSem, unsigned cMillies, bool fInterruptible) 144 144 { 145 145 /* … … 161 161 NTSTATUS rcNt; 162 162 if (cMillies == RT_INDEFINITE_WAIT) 163 rcNt = KeWaitForSingleObject(&pEventInt->Event, Executive, KernelMode, TRUE, NULL);163 rcNt = KeWaitForSingleObject(&pEventInt->Event, Executive, KernelMode, fInterruptible, NULL); 164 164 else 165 165 { 166 166 LARGE_INTEGER Timeout; 167 167 Timeout.QuadPart = -(int64_t)cMillies * 10000; 168 rcNt = KeWaitForSingleObject(&pEventInt->Event, Executive, KernelMode, TRUE, &Timeout);168 rcNt = KeWaitForSingleObject(&pEventInt->Event, Executive, KernelMode, fInterruptible, &Timeout); 169 169 } 170 170 switch (rcNt) … … 175 175 return VERR_SEM_DESTROYED; 176 176 case STATUS_ALERTED: 177 return VERR_INTERRUPTED; /** @todo VERR_INTERRUPTED isn't correct anylonger. please fix r0drv stuff! */177 return VERR_INTERRUPTED; 178 178 case STATUS_USER_APC: 179 return VERR_INTERRUPTED; /** @todo VERR_INTERRUPTED isn't correct anylonger. please fix r0drv stuff! */179 return VERR_INTERRUPTED; 180 180 case STATUS_TIMEOUT: 181 181 return VERR_TIMEOUT; … … 187 187 } 188 188 189 190 RTDECL(int) RTSemEventWait(RTSEMEVENT EventSem, unsigned cMillies) 191 { 192 return rtSemEventWait(EventSem, cMillies, false /* fInterruptible */); 193 } 194 195 196 RTDECL(int) RTSemEventWaitNoResume(RTSEMEVENT EventSem, unsigned cMillies) 197 { 198 return rtSemEventWait(EventSem, cMillies, true /* fInterruptible */); 199 } 189 200 190 201
Note:
See TracChangeset
for help on using the changeset viewer.