Also make sure we don't overflow 'groupid'
Signed-off-by: Jens Axboe <axboe@fb.com>
*/
#define FIO_REAP_TIMEOUT 60
-#define TERMINATE_ALL (-1)
-extern void fio_terminate_threads(int);
+#define TERMINATE_ALL (-1U)
+extern void fio_terminate_threads(unsigned int);
extern void fio_mark_td_terminate(struct thread_data *);
/*
if ((o->stonewall || o->new_group) && prev_group_jobs) {
prev_group_jobs = 0;
groupid++;
+ if (groupid == INT_MAX) {
+ log_err("fio: too many groups defined\n");
+ goto err;
+ }
}
td->groupid = groupid;
td->terminate = 1;
}
-void fio_terminate_threads(int group_id)
+void fio_terminate_threads(unsigned int group_id)
{
struct thread_data *td;
pid_t pid = getpid();
dprint(FD_PROCESS, "terminate group_id=%d\n", group_id);
for_each_td(td, i) {
- if (group_id == TERMINATE_ALL || groupid == td->groupid) {
+ if (group_id == TERMINATE_ALL || group_id == td->groupid) {
dprint(FD_PROCESS, "setting terminate on %s/%d\n",
td->o.name, (int) td->pid);