diff --git a/src/lib/parameters/parameters.cpp b/src/lib/parameters/parameters.cpp index d2ec5ff859..d76deb5a6e 100644 --- a/src/lib/parameters/parameters.cpp +++ b/src/lib/parameters/parameters.cpp @@ -227,8 +227,8 @@ param_init() px4_sem_init(&reader_lock_holders_lock, 0, 1); param_export_perf = perf_alloc(PC_ELAPSED, "param_export"); - param_find_perf = perf_alloc(PC_ELAPSED, "param_find"); - param_get_perf = perf_alloc(PC_ELAPSED, "param_get"); + param_find_perf = perf_alloc(PC_COUNT, "param_find"); + param_get_perf = perf_alloc(PC_COUNT, "param_get"); param_set_perf = perf_alloc(PC_ELAPSED, "param_set"); } @@ -318,7 +318,7 @@ param_notify_changes() param_t param_find_internal(const char *name, bool notification) { - perf_begin(param_find_perf); + perf_count(param_find_perf); param_t middle; param_t front = 0; @@ -350,8 +350,6 @@ param_find_internal(const char *name, bool notification) } } - perf_end(param_find_perf); - /* not found */ return PARAM_INVALID; } @@ -565,21 +563,21 @@ param_get_value_ptr(param_t param) int param_get(param_t param, void *val) { + perf_count(param_get_perf); int result = -1; - param_lock_reader(); - perf_begin(param_get_perf); + if (val) { + param_lock_reader(); + const void *v = param_get_value_ptr(param); - const void *v = param_get_value_ptr(param); + if (v) { + memcpy(val, v, param_size(param)); + result = 0; + } - if (val && v) { - memcpy(val, v, param_size(param)); - result = 0; + param_unlock_reader(); } - perf_end(param_get_perf); - param_unlock_reader(); - return result; } @@ -973,11 +971,11 @@ int param_save_default() const char *filename = param_get_default_file(); if (!filename) { - perf_begin(param_export_perf); param_lock_writer(); + perf_begin(param_export_perf); res = flash_param_save(false, nullptr); - param_unlock_writer(); perf_end(param_export_perf); + param_unlock_writer(); return res; }