#include <time.h> /* for struct timespec */
+struct jambuf;
+
/*
* Try to format all cpu usage messaages the same. All delta-times
* use double and are in seconds.
double wall_seconds;
};
-#define PRI_CPU_USAGE "spent %.3g (%.3g) milliseconds"
-#define pri_cpu_usage(C) ((C).thread_seconds * 1000), ((C).wall_seconds * 1000)
+size_t jam_cpu_usage(struct jambuf *buf, struct cpu_usage usage);
#define cpu_usage_add(TOTAL, USAGE) \
{ \
cputime_t stop = cputime_start();
return cputime_sub(stop, start);
}
+
+size_t jam_cpu_usage(struct jambuf *buf, struct cpu_usage usage)
+{
+ return jam(buf, "spent %.3g (%.3g) milliseconds",
+ usage.thread_seconds * 1000,
+ usage.wall_seconds * 1000);
+}
usage = cputime_stop(start->time);
LLOG_JAMBUF(DEBUG_STREAM, verbose->logger, buf) {
jam_vtime_prefix(buf, verbose);
- jam(buf, PRI_CPU_USAGE" in ", pri_cpu_usage(usage));
+ jam_cpu_usage(buf, usage);
+ jam_string(buf, " in ");
/* FMT, ... */
va_list ap;
va_start(ap, fmt);
if (LDBGP(DBG_CPU_USAGE, logger)) {
struct cpu_usage usage = cputime_stop(*start);
LLOG_JAMBUF(DEBUG_STREAM, logger, buf) {
- jam(buf, PRI_CPU_USAGE" in ", pri_cpu_usage(usage));
+ jam_cpu_usage(buf, usage);
+ jam_string(buf, " in ");
va_list ap;
va_start(ap, fmt);
jam_va_list(buf, fmt, ap);
jam_string(buf, INDENT INDENT);
}
jam_logger_prefix(buf, start->logger);
- jam(buf, PRI_CPU_USAGE" in ", pri_cpu_usage(usage));
+ jam_cpu_usage(buf, usage);
+ jam_string(buf, " in ");
va_list ap;
va_start(ap, fmt);
jam_va_list(buf, fmt, ap);
jam_string(buf, INDENT INDENT);
}
jam_so(buf, start->so);
- jam(buf, " "PRI_CPU_USAGE, pri_cpu_usage(missing));
+ jam_string(buf, " ");
+ jam_cpu_usage(buf, missing);
}
}
}
jam_string(buf, INDENT INDENT);
}
jam_so(buf, st->st_serialno);
- jam(buf, " "PRI_CPU_USAGE" in ", pri_cpu_usage(usage));
+ jam_string(buf, " ");
+ jam_cpu_usage(buf, usage);
+ jam_string(buf," in ");
va_list ap;
va_start(ap, fmt);
jam_va_list(buf, fmt, ap);
* it when debugging - values range from very approximate to
* (in the case of IKEv1) simply wrong.
*/
- if (LDBGP(DBG_CPU_USAGE, st->logger) || LDBGP(DBG_BASE, st->logger)) {
- LDBG_log(st->logger, PRI_SO" main thread "PRI_CPU_USAGE" helper thread "PRI_CPU_USAGE" in total",
- pri_so(st->st_serialno),
- pri_cpu_usage(st->st_timing.main_usage),
- pri_cpu_usage(st->st_timing.helper_usage));
+ if (LDBGP(DBG_CPU_USAGE, st->logger) ||
+ LDBGP(DBG_BASE, st->logger)) {
+ LLOG_JAMBUF(DEBUG_STREAM, st->logger, buf) {
+ jam_so(buf, st->st_serialno);
+ jam_string(buf, " main thread ");
+ jam_cpu_usage(buf, st->st_timing.main_usage);
+ jam_string(buf, " helper thread ");
+ jam_cpu_usage(buf, st->st_timing.helper_usage);
+ jam_string(buf, " in total");
+ }
}
/*