mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-09-22 00:02:23 +00:00
fix(windows): tighten the install-dir clearing per review
- An image that fails to canonicalize stays in the lock check instead of
being silently skipped; only a positive match against the caller's own
running image is excluded.
- reap_recorded_daemon shares one deadline across the whole tree via a
new winproc::terminate_and_wait_all, which stop_for_update and
reap_descendants_of now use too — one implementation of "terminate,
then wait, bounded overall" instead of three.
- [UninstallRun] passes --update-install-dir "{app}" like
PrepareToInstall, so uninstalling after a daemon crash gets the same
orphaned-ConPTY-host cleanup as upgrading.
This commit is contained in:
@@ -130,12 +130,16 @@ Filename: "{app}\tty7-app.exe"; Description: "{cm:LaunchProgram,tty7}"; Flags: n
|
||||
|
||||
[UninstallRun]
|
||||
; Stop the daemon before the uninstaller deletes tty7-app.exe — the running daemon
|
||||
; is the locked image of that file, so removing it fails otherwise. This runs at
|
||||
; the start of uninstallation, before any files are removed. The installed binary
|
||||
; is this version, which understands the flag; runhidden suppresses any flash and
|
||||
; the call returns without opening a window. RunOnceId keys the entry so a repeated
|
||||
; uninstall doesn't run it twice.
|
||||
Filename: "{app}\tty7-app.exe"; Parameters: "--stop-daemon"; Flags: runhidden waituntilterminated; RunOnceId: "StopDaemon"
|
||||
; is the locked image of that file, so removing it fails otherwise. Naming {app}
|
||||
; widens the stop the same way PrepareToInstall's does: ConPTY hosts orphaned by
|
||||
; a daemon that never got to shut down keep the installed images open, and their
|
||||
; DeleteFile fails an uninstall exactly as it fails an upgrade. (The stop excludes
|
||||
; the calling process itself, so the binary running this step is safe.) This runs
|
||||
; at the start of uninstallation, before any files are removed. The installed
|
||||
; binary is this version, which understands the flags; runhidden suppresses any
|
||||
; flash and the call returns without opening a window. RunOnceId keys the entry
|
||||
; so a repeated uninstall doesn't run it twice.
|
||||
Filename: "{app}\tty7-app.exe"; Parameters: "--stop-daemon --update-install-dir ""{app}"""; Flags: runhidden waituntilterminated; RunOnceId: "StopDaemon"
|
||||
; Unconditional, and deliberately not gated on the task: an install that had the
|
||||
; menu registered and was later upgraded without the box ticked still holds the
|
||||
; keys, and verbs pointing at a deleted exe are worse than a no-op. Removing keys
|
||||
|
||||
Reference in New Issue
Block a user