diff --git a/server/etc/example.conf b/server/etc/example.conf index a4939d13c..854d36ca7 100644 --- a/server/etc/example.conf +++ b/server/etc/example.conf @@ -3,6 +3,7 @@ affinity = 0x02; # Mask of cores the server should run on priority = 50; # Scheduler priority for the server debug = 5; # The level of verbosity for debug messages +stats = 0.8; # The interval in seconds fo path statistics nodes = { acs = { diff --git a/server/include/cfg.h b/server/include/cfg.h index 3af19c375..b2d88b55b 100644 --- a/server/include/cfg.h +++ b/server/include/cfg.h @@ -28,6 +28,8 @@ struct settings { int affinity; /** Debug log level */ int debug; + /** Interval for path statistics. Set to 0 to disable themo disable them. */ + double stats; /** A libconfig object pointing to the root of the config file */ config_setting_t *cfg; diff --git a/server/src/cfg.c b/server/src/cfg.c index d718b5d4b..10b653a1a 100644 --- a/server/src/cfg.c +++ b/server/src/cfg.c @@ -68,6 +68,7 @@ int config_parse_global(config_setting_t *cfg, struct settings *set) config_setting_lookup_int(cfg, "affinity", &set->affinity); config_setting_lookup_int(cfg, "priority", &set->priority); config_setting_lookup_int(cfg, "debug", &set->debug); + config_setting_lookup_float(cfg, "stats", &set->stats); debug = set->debug; diff --git a/server/src/server.c b/server/src/server.c index bd5d643f6..f9fc0f238 100644 --- a/server/src/server.c +++ b/server/src/server.c @@ -194,20 +194,19 @@ int main(int argc, char *argv[]) /* Connect all nodes and start one thread per path */ start(); - if (V >= 5) { + if (settings.stats > 0) { struct path *p = paths; - info(""); info("Runtime Statistics:"); info("%12s " MAG("=>") " %-12s: %-8s %-8s %-8s %-8s %-8s", "Source", "Destination", "#Sent", "#Recv", "#Delay", "#Dupl", "#Inval"); info("---------------------------------------------------------------------------"); while (1) { - sleep(1); + usleep(settings.stats * 1e6); path_stats(p); - p = (p->next) ? p->next : paths; + p = (p->next) ? p->next : paths; } } else