From: oharboe Date: Mon, 14 Sep 2009 13:54:49 +0000 (+0000) Subject: error message upon recursive invocation of reset from reset event handlers X-Git-Tag: v0.3.0-rc0~244 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=14dc22612b2997ab536b7f984a3174bb8847b4e8;p=openocd error message upon recursive invocation of reset from reset event handlers git-svn-id: svn://svn.berlios.de/openocd/trunk@2707 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- diff --git a/src/helper/startup.tcl b/src/helper/startup.tcl index ba044be2..3eb7419f 100644 --- a/src/helper/startup.tcl +++ b/src/helper/startup.tcl @@ -134,7 +134,29 @@ proc ocd_gdb_restart {target_id} { reset halt } +global in_process_reset +set in_process_reset 0 + +# Catch reset recursion proc ocd_process_reset { MODE } { + global in_process_reset + if {$in_process_reset} { + set in_process_reset 0 + return -code error "'reset' can not be invoked recursively" + } + + set in_process_reset 1 + set success [expr [catch {ocd_process_reset_inner $MODE} result]==0] + set in_process_reset 0 + + if {$success} { + return $result + } else { + return -code error $result + } +} + +proc ocd_process_reset_inner { MODE } { # If this target must be halted... set halt -1