From: Vincent Guittot vincent.guittot@linaro.org
the thread will run a number of loop before exiting
Signed-off-by: Sanjay Singh Rawat sanjay.rawat@linaro.org --- src/rt-app.c | 2 +- src/rt-app_parse_config.c | 3 +++ src/rt-app_types.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/rt-app.c b/src/rt-app.c index 107872c..f714d58 100644 --- a/src/rt-app.c +++ b/src/rt-app.c @@ -364,7 +364,7 @@ void *thread_body(void *arg) t_next = t_now; data->deadline = timespec_add(&t_now, &data->deadline);
- while (continue_running) { + while (continue_running && (i != data->loop)) { struct timespec t_start, t_end, t_diff, t_slack;
if (opts.ftrace) diff --git a/src/rt-app_parse_config.c b/src/rt-app_parse_config.c index b45a5be..003e99b 100644 --- a/src/rt-app_parse_config.c +++ b/src/rt-app_parse_config.c @@ -462,6 +462,9 @@ parse_thread_data(char *name, struct json_object *obj, int idx, data->cpuset = NULL; data->cpuset_str = NULL;
+ /* loop */ + data->loop = get_int_value_from(obj, "loop", TRUE, -1); + /* period */ period = get_int_value_from(obj, "period", FALSE, 0); if (period <= 0) { diff --git a/src/rt-app_types.h b/src/rt-app_types.h index cace363..3ce58ee 100644 --- a/src/rt-app_types.h +++ b/src/rt-app_types.h @@ -113,6 +113,7 @@ typedef struct _thread_data_t { struct timespec min_et, max_et; struct timespec period, deadline; struct timespec main_app_start; + int loop;
FILE *log_handler; policy_t sched_policy;