Changeset 25720 in vbox for trunk/src/VBox/Runtime/r3/win
- Timestamp:
- Jan 11, 2010 1:57:09 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 56460
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r3/win/semeventmulti-win.cpp
r25704 r25720 70 70 71 71 72 /* Undefine debug mappings. */ 73 #undef RTSemEventMultiWait 74 #undef RTSemEventMultiWaitNoResume 75 76 77 RTDECL(int) RTSemEventMultiCreate(PRTSEMEVENTMULTI pEventMultiSem) 78 { 72 73 RTDECL(int) RTSemEventMultiCreate(PRTSEMEVENTMULTI phEventMultiSem) 74 { 75 return RTSemEventMultiCreateEx(phEventMultiSem, 0 /*fFlags*/, NIL_RTLOCKVALCLASS, NULL); 76 } 77 78 79 RTDECL(int) RTSemEventMultiCreateEx(PRTSEMEVENTMULTI phEventMultiSem, uint32_t fFlags, RTLOCKVALCLASS hClass, 80 const char *pszNameFmt, ...) 81 { 82 AssertReturn(!(fFlags & ~RTSEMEVENTMULTI_FLAGS_NO_LOCK_VAL), VERR_INVALID_PARAMETER); 83 79 84 struct RTSEMEVENTMULTIINTERNAL *pThis = (struct RTSEMEVENTMULTIINTERNAL *)RTMemAlloc(sizeof(*pThis)); 80 85 if (!pThis) … … 90 95 pThis->u32Magic = RTSEMEVENTMULTI_MAGIC; 91 96 #ifdef RTSEMEVENT_STRICT 92 RTLockValidatorRecSharedInit(&pThis->Signallers, 93 NIL_RTLOCKVALCLASS, RTLOCKVAL_SUB_CLASS_ANY, 94 pThis, true /*fSignaller*/, true /*fEnabled*/, "RTSemEvent"); 97 va_list va; 98 va_start(va, pszNameFmt); 99 RTLockValidatorRecSharedInitV(&pThis->Signallers, hClass, RTLOCKVAL_SUB_CLASS_ANY, pThis, 100 true /*fSignaller*/, !(fFlags & RTSEMEVENTMULTI_FLAGS_NO_LOCK_VAL), 101 pszNameFmt, va); 102 va_end(va); 95 103 pThis->fEverHadSignallers = false; 96 104 #endif 97 105 98 *p EventMultiSem = pThis;106 *phEventMultiSem = pThis; 99 107 return VINF_SUCCESS; 100 108 } … … 106 114 107 115 108 RTDECL(int) RTSemEventMultiDestroy(RTSEMEVENTMULTI EventMultiSem)109 { 110 struct RTSEMEVENTMULTIINTERNAL *pThis = EventMultiSem;116 RTDECL(int) RTSemEventMultiDestroy(RTSEMEVENTMULTI hEventMultiSem) 117 { 118 struct RTSEMEVENTMULTIINTERNAL *pThis = hEventMultiSem; 111 119 if (pThis == NIL_RTSEMEVENT) /* don't bitch */ 112 return V ERR_INVALID_HANDLE;120 return VINF_SUCCESS; 113 121 AssertPtrReturn(pThis, VERR_INVALID_HANDLE); 114 122 AssertReturn(pThis->u32Magic == RTSEMEVENTMULTI_MAGIC, VERR_INVALID_HANDLE); … … 130 138 DWORD dwErr = GetLastError(); 131 139 rc = RTErrConvertFromWin32(dwErr); 132 AssertMsgFailed(("Destroy EventMultiSem %p failed, lasterr=%u (%Rrc)\n", pThis, dwErr, rc));140 AssertMsgFailed(("Destroy hEventMultiSem %p failed, lasterr=%u (%Rrc)\n", pThis, dwErr, rc)); 133 141 /* Leak it. */ 134 142 } … … 138 146 139 147 140 RTDECL(int) RTSemEventMultiSignal(RTSEMEVENTMULTI EventMultiSem)148 RTDECL(int) RTSemEventMultiSignal(RTSEMEVENTMULTI hEventMultiSem) 141 149 { 142 150 /* 143 151 * Validate input. 144 152 */ 145 struct RTSEMEVENTMULTIINTERNAL *pThis = EventMultiSem;153 struct RTSEMEVENTMULTIINTERNAL *pThis = hEventMultiSem; 146 154 AssertPtrReturn(pThis, VERR_INVALID_HANDLE); 147 155 AssertReturn(pThis->u32Magic == RTSEMEVENTMULTI_MAGIC, VERR_INVALID_HANDLE); … … 162 170 return VINF_SUCCESS; 163 171 DWORD dwErr = GetLastError(); 164 AssertMsgFailed(("Signaling EventMultiSem %p failed, lasterr=%d\n", pThis, dwErr));172 AssertMsgFailed(("Signaling hEventMultiSem %p failed, lasterr=%d\n", pThis, dwErr)); 165 173 return RTErrConvertFromWin32(dwErr); 166 174 } 167 175 168 176 169 RTDECL(int) RTSemEventMultiReset(RTSEMEVENTMULTI EventMultiSem)177 RTDECL(int) RTSemEventMultiReset(RTSEMEVENTMULTI hEventMultiSem) 170 178 { 171 179 /* 172 180 * Validate input. 173 181 */ 174 struct RTSEMEVENTMULTIINTERNAL *pThis = EventMultiSem;182 struct RTSEMEVENTMULTIINTERNAL *pThis = hEventMultiSem; 175 183 AssertPtrReturn(pThis, VERR_INVALID_HANDLE); 176 184 AssertReturn(pThis->u32Magic == RTSEMEVENTMULTI_MAGIC, VERR_INVALID_HANDLE); … … 182 190 return VINF_SUCCESS; 183 191 DWORD dwErr = GetLastError(); 184 AssertMsgFailed(("Resetting EventMultiSem %p failed, lasterr=%d\n", pThis, dwErr));192 AssertMsgFailed(("Resetting hEventMultiSem %p failed, lasterr=%d\n", pThis, dwErr)); 185 193 return RTErrConvertFromWin32(dwErr); 186 194 } … … 201 209 { 202 210 int rc2 = RTErrConvertFromWin32(GetLastError()); 203 AssertMsgFailed(("Wait on EventMultiSem %p failed, rc=%d lasterr=%d\n", pThis, rc, GetLastError()));211 AssertMsgFailed(("Wait on hEventMultiSem %p failed, rc=%d lasterr=%d\n", pThis, rc, GetLastError())); 204 212 if (rc2) 205 213 return rc2; … … 212 220 213 221 214 RTDECL(int) RTSemEventMultiWaitNoResume(RTSEMEVENTMULTI EventMultiSem, unsigned cMillies) 222 #undef RTSemEventMultiWaitNoResume 223 RTDECL(int) RTSemEventMultiWaitNoResume(RTSEMEVENTMULTI hEventMultiSem, unsigned cMillies) 215 224 { 216 225 PCRTLOCKVALSRCPOS pSrcPos = NULL; … … 219 228 * Validate input. 220 229 */ 221 struct RTSEMEVENTMULTIINTERNAL *pThis = EventMultiSem;230 struct RTSEMEVENTMULTIINTERNAL *pThis = hEventMultiSem; 222 231 AssertPtrReturn(pThis, VERR_INVALID_HANDLE); 223 232 AssertReturn(pThis->u32Magic == RTSEMEVENTMULTI_MAGIC, VERR_INVALID_HANDLE);
Note:
See TracChangeset
for help on using the changeset viewer.