From 3aa8bd2d1704118ad9bbee2f21cbc15a848c8c5b Mon Sep 17 00:00:00 2001 From: Matthias Welwarsky Date: Fri, 17 Feb 2017 16:12:07 +0100 Subject: [PATCH] rtos: run rtos create hook only once on autodetect Whenever a "qSymbol" from gdb is received, the rtos "create" function was called. Make sure this happens only once and only if rtos autodetection is used. Change-Id: Ie5f8632cfce2d64a38dbdb63468302c4e8a784f4 Signed-off-by: Matthias Welwarsky Reviewed-on: http://openocd.zylin.com/3998 Tested-by: jenkins Reviewed-by: Sergey A. Borshch Reviewed-by: Matthias Welwarsky --- src/rtos/rtos.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/rtos/rtos.c b/src/rtos/rtos.c index 4552a87d..497ea8b4 100644 --- a/src/rtos/rtos.c +++ b/src/rtos/rtos.c @@ -346,9 +346,11 @@ int rtos_thread_packet(struct connection *connection, char const *packet, int pa return ERROR_OK; } else if (strncmp(packet, "qSymbol", 7) == 0) { if (rtos_qsymbol(connection, packet, packet_size) == 1) { - target->rtos_auto_detect = false; - target->rtos->type->create(target); - target->rtos->type->update_threads(target->rtos); + if (target->rtos_auto_detect == true) { + target->rtos_auto_detect = false; + target->rtos->type->create(target); + target->rtos->type->update_threads(target->rtos); + } } return ERROR_OK; } else if (strncmp(packet, "qfThreadInfo", 12) == 0) { -- 2.39.5