Changeset View
Changeset View
Standalone View
Standalone View
tools/tools/htm_torture/threads.c
- This file was added.
/* | |||||
* Copyright (c) 2017 Breno Leitao, Gustavo Romero, IBM Corp. | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions | |||||
* are met: | |||||
* 1. Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions and the following disclaimer. | |||||
* 2. Redistributions in binary form must reproduce the above copyright | |||||
* notice, this list of conditions and the following disclaimer in the | |||||
* documentation and/or other materials provided with the distribution. | |||||
* | |||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | |||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | |||||
* IN NO EVENT SHALL TOOLS GMBH BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | |||||
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |||||
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |||||
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
*/ | |||||
#include "torture.h" | |||||
void reinit_workers(void) { | |||||
num_used_threads = 0; | |||||
} | |||||
void start_workers(uint64_t workload, uint64_t nr_workers) | |||||
{ | |||||
for (uint64_t i = 0; i < nr_workers; i++) { | |||||
pthread_create(&thread_pool[num_used_threads], | |||||
NULL, &worker, (void *) workload); | |||||
num_used_threads++; | |||||
} | |||||
} | |||||
void join_workers(void) | |||||
{ | |||||
for (uint64_t i = 0; i < num_used_threads; i++) | |||||
pthread_join(thread_pool[i], NULL); | |||||
reinit_workers(); | |||||
} |