run()'s callback arg. can be called from methods in ThreadedBenchmark
in order to do so, child classes have to call a new method defined in
threaded benchmark: timing_callback. It is of timing_cb_t type, and will
ensure that calls to the callback lambda are serialized by using a
mutex. Clients can thus assume that concurrent calls to their callback
will not overlap in their execution, which e.g. allows to simply
serialize the results to a file.