Home | History | Annotate | Download | only in decpp

Lines Matching refs:SpinBarrier

34 SpinBarrier::SpinBarrier (deInt32 numThreads)
44 SpinBarrier::~SpinBarrier (void)
49 void SpinBarrier::reset (deUint32 numThreads)
60 inline SpinBarrier::WaitMode getWaitMode (SpinBarrier::WaitMode requested, deUint32 numCores, deInt32 numThreads)
62 if (requested == SpinBarrier::WAIT_MODE_AUTO)
63 return ((deUint32)numThreads <= numCores) ? SpinBarrier::WAIT_MODE_BUSY : SpinBarrier::WAIT_MODE_YIELD;
68 inline void wait (SpinBarrier::WaitMode mode)
70 DE_ASSERT(mode == SpinBarrier::WAIT_MODE_YIELD || mode == SpinBarrier::WAIT_MODE_BUSY);
72 if (mode == SpinBarrier::WAIT_MODE_YIELD)
76 void SpinBarrier::sync (WaitMode requestedMode)
98 // threads. Since m_numThreads only changes if all threads are inside the spinbarrier,
127 void SpinBarrier::removeThread (WaitMode requestedMode)
163 void singleThreadTest (SpinBarrier::WaitMode mode)
165 SpinBarrier barrier(1);
175 TestThread (SpinBarrier& barrier, volatile deInt32* sharedVar, int numThreads, int threadNdx)
214 SpinBarrier& m_barrier;
220 SpinBarrier::WaitMode getWaitMode (de::Random& rnd)
222 static const SpinBarrier::WaitMode s_allModes[] =
224 SpinBarrier::WAIT_MODE_YIELD,
225 SpinBarrier::WAIT_MODE_AUTO,
226 SpinBarrier::WAIT_MODE_BUSY,
230 return rnd.choose<SpinBarrier::WaitMode>(DE_ARRAY_BEGIN(s_allModes), DE_ARRAY_BEGIN(s_allModes) + numModes);
236 SpinBarrier barrier (numThreads);
256 void singleThreadRemoveTest (SpinBarrier::WaitMode mode)
258 SpinBarrier barrier(3);
276 TestExitThread (SpinBarrier& barrier, int numThreads, int threadNdx, SpinBarrier::WaitMode waitMode)
303 SpinBarrier& m_barrier;
306 const SpinBarrier::WaitMode m_waitMode;
309 void multiThreadRemoveTest (int numThreads, SpinBarrier::WaitMode waitMode)
311 SpinBarrier barrier (numThreads);
332 singleThreadTest(SpinBarrier::WAIT_MODE_YIELD);
333 singleThreadTest(SpinBarrier::WAIT_MODE_BUSY);
334 singleThreadTest(SpinBarrier::WAIT_MODE_AUTO);
341 singleThreadRemoveTest(SpinBarrier::WAIT_MODE_YIELD);
342 singleThreadRemoveTest(SpinBarrier::WAIT_MODE_BUSY);
343 singleThreadRemoveTest(SpinBarrier::WAIT_MODE_AUTO);
344 multiThreadRemoveTest(1, SpinBarrier::WAIT_MODE_BUSY);
345 multiThreadRemoveTest(2, SpinBarrier::WAIT_MODE_AUTO);
346 multiThreadRemoveTest(4, SpinBarrier::WAIT_MODE_AUTO);
347 multiThreadRemoveTest(8, SpinBarrier::WAIT_MODE_AUTO);
348 multiThreadRemoveTest(16, SpinBarrier::WAIT_MODE_AUTO);
349 multiThreadRemoveTest(1, SpinBarrier::WAIT_MODE_YIELD);
350 multiThreadRemoveTest(2, SpinBarrier::WAIT_MODE_YIELD);
351 multiThreadRemoveTest(4, SpinBarrier::WAIT_MODE_YIELD);
352 multiThreadRemoveTest(8, SpinBarrier::WAIT_MODE_YIELD);
353 multiThreadRemoveTest(16, SpinBarrier::WAIT_MODE_YIELD);