diff options
author | Antonio Borneo <borneo.antonio@gmail.com> | 2022-09-06 14:44:57 +0200 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2022-09-13 22:14:28 +0000 |
commit | 320043c054dc0c9f274d462014bd7aafff86fe02 (patch) | |
tree | 34938d10945ec7078bcdcf7d890718897afd1977 /src/helper/command.c | |
parent | 5d6be673c36b00eb962cbb441dd557d3cc8eb03c (diff) | |
download | riscv-openocd-320043c054dc0c9f274d462014bd7aafff86fe02.zip riscv-openocd-320043c054dc0c9f274d462014bd7aafff86fe02.tar.gz riscv-openocd-320043c054dc0c9f274d462014bd7aafff86fe02.tar.bz2 |
openocd: fix for polling during "expr" computation
Commit c7eaaf620488 ("openocd: prepare for jimtcl 0.81 'expr'
syntax change") replaces the jimtcl command "expr" with an openocd
version that detects the TCL syntax change and prints a warning.
The openocd "expr" command will be dropped after v0.12.0,
One side effect is that openocd invokes polling the target after
every openocd command, causing scripts that use several "expr"
commands to run much slower; see [1].
The proper fix would require openocd to invoke polling only at the
time period deadline, instead of at each command. Such fix is too
risky to be applied now, due to short time before v0.12.0-rc1.
As a temporarily workaround, let openocd to detect the "expr"
command and skip the polling.
This will be dropped together with the openocd "expr" command.
Change-Id: I8151aa28694817001046165a15475d64896f985e
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Fixes: https://sourceforge.net/p/openocd/tickets/362/ [1]
Fixes: c7eaaf620488 ("openocd: prepare for jimtcl 0.81 'expr' syntax change")
Reviewed-on: https://review.openocd.org/c/openocd/+/7174
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/helper/command.c')
-rw-r--r-- | src/helper/command.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/helper/command.c b/src/helper/command.c index 52f9eb6..b5c5459 100644 --- a/src/helper/command.c +++ b/src/helper/command.c @@ -936,7 +936,19 @@ static int jim_command_dispatch(Jim_Interp *interp, int argc, Jim_Obj * const *a if (!command_can_run(cmd_ctx, c, Jim_GetString(argv[0], NULL))) return JIM_ERR; - target_call_timer_callbacks_now(); + /* + * TODO: to be removed after v0.12.0 + * workaround for https://sourceforge.net/p/openocd/tickets/362/ + * After syntax change of "expr" in jimtcl 0.81 + * the replacement of jimtcl "expr" with openocd version in + * https://review.openocd.org/6510/ + * introduces too many target polling during math expressions with + * "expr" commands. + * After v0.12.0 replace the following two lines with + * target_call_timer_callbacks(); + */ + if (strcmp(c->name, "expr")) + target_call_timer_callbacks_now(); /* * Black magic of overridden current target: |