72 [&](Threads::ElementHolder& storage)
78 uint delay = rand() % 10;
89 for (
auto& thread : threads)
93 "ALARM: Lock failed, concurrent modification " 94 "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
Simple test class runner.
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...