reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include <thread> const size_t kAllocSize = 16; const size_t kInitialNumAllocs = 1 << 10; const size_t kPeriodicNumAllocs = 1 << 10; const size_t kNumIterations = 1 << 7; const size_t kNumThreads = 16; void Thread() { char *InitialAllocations[kInitialNumAllocs]; char *PeriodicaAllocations[kPeriodicNumAllocs]; for (auto &p : InitialAllocations) p = new char[kAllocSize]; for (size_t i = 0; i < kNumIterations; i++) { for (size_t j = 0; j < kPeriodicNumAllocs; j++) { for (auto &p : PeriodicaAllocations) { p = new char[kAllocSize]; *p = 0; } for (auto p : PeriodicaAllocations) delete [] p; } } for (auto p : InitialAllocations) delete [] p; } int main() { std::thread *Threads[kNumThreads]; for (auto &T : Threads) T = new std::thread(&Thread); for (auto T : Threads) { T->join(); delete T; } } |