Linux, C. Ho creato più thread per eseguire carichi di lavoro e desidero segnalare che i thread si fermano/terminano dopo un intervallo di secondi specificato. Come posso implementarlo con C?Linux, C: terminare più thread dopo alcuni secondi (timer?)
void *do_function(void *ptr)
{
//calculating, dothe workload here;
}
int run(struct calculate_node *node)
{
pthread_t threads[MAX_NUM_THREADS];
for (t = 0; t < node->max_threads; t++) {
rc = pthread_create(&threads[t], NULL, do_function, (void*)node);
if(rc) return -1;
}
//how do I create timer here to fire to signal those threads to exit after specified seconds?
for (t = 0; t < node->max_threads; t++) {
pthread_join(threads[t], NULL);
}
free(threads);
}
grazie!