The SHOW_TOT() and SHOW_AVG() macros used in cli_io_handler_show_activity()
produce a warning on gcc 4.7 on MIPS with threads disabled because the
compiler doesn't know that global.nbthread is necessarily non-null, hence
that at least one iteration is performed. Let's just change the loop for
a do {} while () that lets the compiler know it's always initialized. It
also has the tiny benefit of making the code shorter.
(cherry picked from commit
97b5d07a3e5a33552327bac2e4c9c6a0496f7b5e)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit
b9aac36d8d8d3bb05c785aa8f6630338d078f64a)
Signed-off-by: Willy Tarreau <w@1wt.eu>
unsigned int _v[MAX_THREADS]; \
unsigned int _tot; \
const unsigned int _nbt = global.nbthread; \
- for (_tot = t = 0; t < _nbt; t++) \
+ _tot = t = 0; \
+ do { \
_tot += _v[t] = (x); \
+ } while (++t < _nbt); \
if (_nbt == 1) { \
chunk_appendf(&trash, " %u\n", _tot); \
break; \
unsigned int _v[MAX_THREADS]; \
unsigned int _tot; \
const unsigned int _nbt = global.nbthread; \
- for (_tot = t = 0; t < _nbt; t++) \
+ _tot = t = 0; \
+ do { \
_tot += _v[t] = (x); \
+ } while (++t < _nbt); \
if (_nbt == 1) { \
chunk_appendf(&trash, " %u\n", _tot); \
break; \