GitHub Viewer
// 2018/12/08 modified by Tsung-Wei Huang
// - refactored the output format
//
// 2018/12/07 modified by Tsung-Wei Huang
// - refactored the output format
//
// 2018/12/06 modified by Tsung-Wei Huang
// - added nested insertions test
//
// 2018/12/04 modified by Tsung-Wei Huang
// - replace privatized threadpool with work stealing threadpool
//
// 2018/10/04 modified by Tsung-Wei Huang
// - removed binary_tree
// - removed modulo_insertions
// - adopted to the new threadpool implementation
//
// 2018/09/19 modified by Tsung-Wei Huang
// - added binary_tree benchmark
// - added modulo_insertions benchmark
// - refactored benchmark calls
//
// 2018/08/31 contributed by Guannan
//
// Examples to test different threadpool implementations:
// - SimpleThreadpool
// - ProactiveThreadpool
// - SpeculativeThreadpool
// - PrivatizedThreadpool
#include
#include
#include
#include
#include
#include
#include
constexpr int WIDTH = 12;
using Closure = std::function;
// Procedure: benchmark
#define BENCHMARK(TITLE, F) \
std::cout \