{
int i;
- for (i = 0; i < thread_number; i++) {
- struct thread_data *td = &threads[i];
-
- td->terminate = 1;
- }
-}
-
-static void terminate_threads(void)
-{
- int i;
-
for (i = 0; i < thread_number; i++) {
struct thread_data *td = &threads[i];
if (rate < td->ratemin) {
printf("Client%d: min rate %d not met, got %ldKiB/sec\n", td->thread_number, td->ratemin, rate);
if (rate_quit)
- terminate_threads();
+ sig_handler(0);
return 1;
}
}
fgetpos(f, &off);
while ((p = fgets(string, 4096, f)) != NULL) {
if (is_empty(p))
+ continue;
+ if (strstr(p, "["))
break;
if (!check_int(p, "bs", &td->bs)) {
td->bs <<= 10;
fgetpos(f, &off);
continue;
}
+ printf("Client%d: bad option %s\n",td->thread_number,p);
}
fsetpos(f, &off);
(*nr_running)--;
(*m_rate) -= td->ratemin;
(*t_rate) -= td->rate;
+
+ if (td->terminate)
+ continue;
+
printf("Threads now running: %d", *nr_running);
if (*m_rate || *t_rate)
printf(", rate %d/%dKiB/sec", *t_rate, *m_rate);