Lines Matching refs:pArgs

212         PTHREADTEST1ARGS pArgs = (PTHREADTEST1ARGS)RTMemAllocZ(sizeof(*pArgs));
213 pArgs->iThread = iThread;
214 pArgs->pCritSect = &CritSect;
215 pArgs->pu32Release = &u32Release;
218 RTTEST_CHECK_RC_RET(g_hTest, RTThreadCreateF(&Thread, ThreadTest1, pArgs, 0, RTTHREADTYPE_DEFAULT, 0, "T%d", iThread), VINF_SUCCESS, 1);
247 PTHREADTEST2ARGS pArgs = (PTHREADTEST2ARGS)pvArg;
248 Log2(("ThreadTest2: Start - iThread=%d ThreadSelf=%p\n", pArgs->iThread, ThreadSelf));
250 ASMAtomicIncU32(pArgs->pcThreadRunning);
252 for (unsigned i = 0; *pArgs->pu32Release < pArgs->cIterations; i++)
257 int rc = RTCritSectEnter(pArgs->pCritSect);
260 RTTestFailed(g_hTest, "thread %d, iteration %d: RTCritSectEnter -> %d", pArgs->iThread, i, rc);
270 if ((*pArgs->pu32Release % pArgs->cThreads) != pArgs->iThread)
272 pArgs->iThread, i, *pArgs->pu32Release % pArgs->cThreads, *pArgs->pu32Release);
275 pArgs->iThread, i, *pArgs->pu32Release % pArgs->cThreads, *pArgs->pu32Release);
277 pArgs->cTimes++;
278 ASMAtomicIncU32(pArgs->pu32Release);
284 if (!(*pArgs->pu32Release % 879))
286 uint32_t u32Perfect = *pArgs->pu32Release / pArgs->cThreads;
287 for (int iThread = 0 ; iThread < (int)pArgs->cThreads; iThread++)
289 int cDiff = pArgs[iThread - pArgs->iThread].cTimes - u32Perfect;
293 iThread, u32Perfect, pArgs[iThread - pArgs->iThread].cTimes, cDiff);
304 for (u32 = 0; u32 < pArgs->cCheckLoops; u32++)
306 if (*pArgs->pu32Alone != ~0U)
308 RTTestFailed(g_hTest, "thread %d, iteration %d: not alone!!!", pArgs->iThread, i);
313 ASMAtomicCmpXchgU32(pArgs->pu32Alone, pArgs->iThread, ~0);
314 for (u32 = 0; u32 < pArgs->cCheckLoops; u32++)
316 if (*pArgs->pu32Alone != pArgs->iThread)
318 RTTestFailed(g_hTest, "thread %d, iteration %d: not alone!!!", pArgs->iThread, i);
323 ASMAtomicXchgU32(pArgs->pu32Alone, ~0);
328 if (*pArgs->pu32Prev == pArgs->iThread && pArgs->cThreads > 1)
329 ASMAtomicIncU32(pArgs->pcSeq);
330 else if ((*pArgs->pu32Prev + 1) % pArgs->cThreads != pArgs->iThread)
331 ASMAtomicIncU32(pArgs->pcReordered);
332 ASMAtomicXchgU32(pArgs->pu32Prev, pArgs->iThread);
337 rc = RTCritSectLeave(pArgs->pCritSect);
340 RTTestFailed(g_hTest, "thread %d, iteration %d: RTCritSectEnter -> %d", pArgs->iThread, i, rc);
346 ASMAtomicDecU32(pArgs->pcThreadRunning);
347 RTSemEventSignal(pArgs->EventDone);
348 Log2(("ThreadTest2: End - iThread=%d ThreadSelf=%p time=%lld\n", pArgs->iThread, ThreadSelf, u64TSEnd - u64TSStart));