65 [&](Threads::ElementHolder& storage)
71 uint delay = gen.i(10);
82 for (
auto& thread : threads)
86 "ALARM: Lock failed, concurrent modification " 87 "during counter increment. Delta == %d"
A fixed collection of non-copyable polymorphic objects.
Implementation namespace for support and library code.
Managing a collection of non-copyable polymorphic objects in compact storage.
Abstract Base Class for all testcases.
const uint NUM_LOOP
number of loop iterations per thread
const uint NUM_THREADS
number of contending threads to create
Simplistic test class runner.
void seedRand()
draw a new random seed from a common nucleus, and re-seed the default-Gen.
lib::Result< RES > join()
put the caller into a blocking wait until this thread has terminated
Convenience front-end to simplify and codify basic thread handling.
A special implementation of lib::Sync, where the storage of the object monitor is associated directly...
A synchronisation protection guard employing a lock scoped to the parameter type as a whole...
Random defaultGen
a global default RandomSequencer for mundane purposes