int nr_thread = 0;
int shm_id = 0;
int temp_stall_ts;
+unsigned long done_secs = 0;
static struct fio_mutex *startup_mutex;
static volatile int fio_abort;
struct thread_data *td;
int i;
+ dprint(FD_PROCESS, "terminate group_id=%d\n", group_id);
+
for_each_td(td, i) {
if (group_id == TERMINATE_ALL || groupid == td->groupid) {
- dprint(FD_PROCESS, "setting terminate on %d\n",
- td->pid);
+ dprint(FD_PROCESS, "setting terminate on %s/%d\n",
+ td->o.name, td->pid);
td->terminate = 1;
td->o.start_delay = 0;
(*nr_running)--;
(*m_rate) -= td->o.ratemin;
(*t_rate) -= td->o.rate;
- pending--;
+ if (!td->pid)
+ pending--;
if (td->error)
exit_value++;
+
+ done_secs += mtime_since_now(&td->epoch) / 1000;
}
if (*nr_running == cputhreads && !pending && realthreads)
continue;
}
- if (td->o.stonewall && (nr_started || nr_running))
+ if (td->o.stonewall && (nr_started || nr_running)) {
+ dprint(FD_PROCESS, "%s: stonewall wait\n",
+ td->o.name);
break;
+ }
/*
* Set state to created. Thread will transition