-/* SPDX-License-Identifier: GPL-2.0-or-later */
+// SPDX-License-Identifier: GPL-2.0-or-later
/***************************************************************************
* Copyright (C) 2005 by Dominic Rath *
* This is necessary in order to avoid accidentally getting a non-empty
* string for tcl fn's.
*/
- bool save_poll = jtag_poll_get_enabled();
-
- jtag_poll_set_enabled(false);
+ bool save_poll_mask = jtag_poll_mask();
const char *str = Jim_GetString(argv[1], NULL);
int retcode = Jim_Eval_Named(interp, str, __THIS__FILE__, __LINE__);
- jtag_poll_set_enabled(save_poll);
+ jtag_poll_unmask(save_poll_mask);
command_log_capture_finish(state);
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: