Changeset 25478 in vbox for trunk/src/VBox/Runtime/r3/win
- Timestamp:
- Dec 18, 2009 12:58:10 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 56147
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r3/win/semmutex-win.cpp
r25467 r25478 138 138 * 139 139 * @returns Same as RTSEmMutexRequestNoResume 140 * @param MutexSem 141 * @param cMillies 142 * @param TSEMMUTEX_STRICT_POS_DECLThe source position of the caller.140 * @param MutexSem The mutex handle. 141 * @param cMillies The number of milliseconds to wait. 142 * @param pSrcPos The source position of the caller. 143 143 */ 144 DECL_FORCE_INLINE(int) rtSemMutexRequestNoResume(RTSEMMUTEX MutexSem, unsigned cMillies, RTSEMMUTEX_STRICT_POS_DECL)144 DECL_FORCE_INLINE(int) rtSemMutexRequestNoResume(RTSEMMUTEX MutexSem, unsigned cMillies, PCRTLOCKVALIDATORSRCPOS pSrcPos) 145 145 { 146 146 /* … … 153 153 #ifdef RTSEMMUTEX_STRICT 154 154 RTTHREAD hThreadSelf = RTThreadSelfAutoAdopt(); 155 RTLockValidatorCheckOrder(&pThis->ValidatorRec, hThreadSelf, RTSEMMUTEX_STRICT_POS_ARGS);155 RTLockValidatorCheckOrder(&pThis->ValidatorRec, hThreadSelf, pSrcPos); 156 156 #else 157 157 RTTHREAD hThreadSelf = RTThreadSelf(); … … 165 165 #ifdef RTSEMMUTEX_STRICT 166 166 int rc9 = RTLockValidatorCheckBlocking(&pThis->ValidatorRec, hThreadSelf, 167 RTTHREADSTATE_MUTEX, true, uId, RT_SRC_POS_ARGS);167 RTTHREADSTATE_MUTEX, true, pSrcPos); 168 168 if (RT_FAILURE(rc9)) 169 169 return rc9; 170 #e lse170 #endif 171 171 RTThreadBlocking(hThreadSelf, RTTHREADSTATE_MUTEX); 172 #endif173 172 } 174 173 int rc = WaitForSingleObjectEx(pThis->hMtx, … … 180 179 case WAIT_OBJECT_0: 181 180 #ifdef RTSEMMUTEX_STRICT 182 RTLockValidatorSetOwner(&pThis->ValidatorRec, hThreadSelf, RTSEMMUTEX_STRICT_POS_ARGS);181 RTLockValidatorSetOwner(&pThis->ValidatorRec, hThreadSelf, pSrcPos); 183 182 #endif 184 183 return VINF_SUCCESS; … … 204 203 { 205 204 #ifndef RTSEMMUTEX_STRICT 206 return rtSemMutexRequestNoResume(MutexSem, cMillies, RTSEMMUTEX_STRICT_POS_ARGS);205 return rtSemMutexRequestNoResume(MutexSem, cMillies, NULL); 207 206 #else 208 return RTSemMutexRequestNoResumeDebug(MutexSem, cMillies, (uintptr_t)ASMReturnAddress(), RT_SRC_POS); 207 RTLOCKVALIDATORSRCPOS SrcPos = RTLOCKVALIDATORSRCPOS_INIT_NORMAL_API(); 208 return rtSemMutexRequestNoResume(MutexSem, cMillies, &SrcPos); 209 209 #endif 210 210 } … … 213 213 RTDECL(int) RTSemMutexRequestNoResumeDebug(RTSEMMUTEX MutexSem, unsigned cMillies, RTHCUINTPTR uId, RT_SRC_POS_DECL) 214 214 { 215 #ifdef RTSEMMUTEX_STRICT 216 return rtSemMutexRequestNoResume(MutexSem, cMillies, RTSEMMUTEX_STRICT_POS_ARGS); 217 #else 218 return RTSemMutexRequestNoResume(MutexSem, cMillies); 219 #endif 215 RTLOCKVALIDATORSRCPOS SrcPos = RTLOCKVALIDATORSRCPOS_INIT_DEBUG_API(); 216 return rtSemMutexRequestNoResume(MutexSem, cMillies, &SrcPos); 220 217 } 221 218
Note:
See TracChangeset
for help on using the changeset viewer.