X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.h;h=325355174bd37c1134bb3d492a3f4aecee5e10c7;hb=ebd9b4dd690808f720712b9c1a1288ae0742f361;hp=09c441491be9a41221042d6d837038adb55d0100;hpb=6946ad5940565d573d85e210b8ea4da5884f0323;p=fio.git diff --git a/fio.h b/fio.h index 09c44149..32535517 100644 --- a/fio.h +++ b/fio.h @@ -753,9 +753,24 @@ extern void lat_target_reset(struct thread_data *); /* * Iterates all threads/processes within all the defined jobs + * Usage: + * for_each_td(var_name_for_td) { + * << bodoy of your loop >> + * Note: internally-scoped loop index availble as __td_index + * } end_for_each_td() */ -#define for_each_td(td, i) \ - for ((i) = 0, (td) = &segments[0].threads[0]; (i) < (int) thread_number; (i)++, (td) = tnumber_to_td((i))) +#define for_each_td(td) \ +{ \ + int __td_index; \ + struct thread_data *(td); \ + for (__td_index = 0, (td) = &segments[0].threads[0];\ + __td_index < (int) thread_number; __td_index++, (td) = tnumber_to_td(__td_index)) +#define for_each_td_index() \ +{ \ + int __td_index; \ + for (__td_index = 0; __td_index < (int) thread_number; __td_index++) +#define end_for_each() } + #define for_each_file(td, f, i) \ if ((td)->files_index) \ for ((i) = 0, (f) = (td)->files[0]; \