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 <matthias.welwarsky@sysgo.com>
Reviewed-on: http://openocd.zylin.com/3998
Tested-by: jenkins
Reviewed-by: Sergey A. Borshch <sb-sf@users.sourceforge.net>
Reviewed-by: Matthias Welwarsky <matthias@welwarsky.de>
riscv-compliance-dev
Matthias Welwarsky 2017-02-17 16:12:07 +01:00 committed by Matthias Welwarsky
parent 293fb9b25f
commit 3aa8bd2d17
1 changed files with 5 additions and 3 deletions

View File

@ -346,9 +346,11 @@ int rtos_thread_packet(struct connection *connection, char const *packet, int pa
return ERROR_OK; return ERROR_OK;
} else if (strncmp(packet, "qSymbol", 7) == 0) { } else if (strncmp(packet, "qSymbol", 7) == 0) {
if (rtos_qsymbol(connection, packet, packet_size) == 1) { if (rtos_qsymbol(connection, packet, packet_size) == 1) {
target->rtos_auto_detect = false; if (target->rtos_auto_detect == true) {
target->rtos->type->create(target); target->rtos_auto_detect = false;
target->rtos->type->update_threads(target->rtos); target->rtos->type->create(target);
target->rtos->type->update_threads(target->rtos);
}
} }
return ERROR_OK; return ERROR_OK;
} else if (strncmp(packet, "qfThreadInfo", 12) == 0) { } else if (strncmp(packet, "qfThreadInfo", 12) == 0) {