chiark / gitweb /
do not go wrong on !realtime stop
authorian <ian>
Sun, 13 Jul 2008 20:53:22 +0000 (20:53 +0000)
committerian <ian>
Sun, 13 Jul 2008 20:53:22 +0000 (20:53 +0000)
hostside/multiplex

index 535f50a582246376cbf5b9837e7e62a71747cbbd..cb0f6815b4bca7bc7b5e30ab9a771360b619b560 100755 (executable)
@@ -30,7 +30,7 @@
 #    $realtime       set      set            set          ?             unset
 #    $currentcmd     unset    $cmd           $cmd         $cmd          unset
 #    $currentconn    unset    $conn or {}    $conn or {}  $conn         unset
-#    $executing      0        0              1            1             0
+#    $executing      0        0              1            2             0
 #
 # globals relating to realtime start/stop:
 #                     manual      ready to   running   awaiting off
@@ -391,7 +391,7 @@ proc process-command {conn l} {
        if {![catch { info args global/$cmd }]} {
            set currentcmd $cmd
            set currentconn $conn
-           set executing 1
+           set executing 2
            xmit-relevantly "executing $cmd"
            eval [list global/$cmd $conn] [lrange [split $l] 1 end]
        } elseif {![catch { info args local/$cmd }]} {
@@ -594,7 +594,9 @@ proc realtime-failed {k m} {
     xmit-relevantly-savereplay 40 \
            "warning realtime-failed" "reason $k : $m"
     catch { save-dump }
-    if {$executing} {
+    if {$executing==2} {
+       # internal commands need to deal with it themselves
+    } elseif {$executing} {
        xmit-relevantly "ack $currentcmd SystemFailed realtime : $m"
        set executing 0
     } elseif {[info exists currentcmd]} {