Skip to content

disable() stops the scanner it started - #98

Merged
Jackicus merged 1 commit into
mainfrom
fix/scanner-on-disable
Oct 7, 2026
Merged

Jackicus merged 1 commit into
mainfrom
fix/scanner-on-disable

Conversation

@Jackicus

@Jackicus Jackicus commented Oct 7, 2026

Copy link
Copy Markdown
Owner

disable() only cancelled the cancellable given to communicate_utf8_async, which abandons the wait for the scanner's output but leaves the gjs -m backend/scanLibrary.js process running. It now keeps the Gio.Subprocess and calls force_exit() on it; the completion callback ignores a process that is no longer the app's own, so a stopped scan neither logs a failure nor schedules a rebuild after disable.

Fixes #95

Verified

  • make check
  • Seen in the nested shell (start --stand-in, Games emptied, games-steam-path pointed at a stand-in Steam folder whose libraryfolders.vdf is a FIFO, so the scan blocks): before, Find Games then nested.sh reload left the gjs … scanLibrary.js --only games process running, reparented; after, the same reload ends it, and nothing is logged for it. A scan that is allowed to finish still rebuilds the section ([Library Menu] Rebuilt) and restores Find Games.
  • Nested stop + start: enabled cleanly, no errors in the log
  • CLAUDE.md, .claude/rules/, skills and docs/ still true (the scanner's lock is a bus name, released however the process ends)

🤖 Generated with Claude Code

lib/app.js only cancelled the Gio.Cancellable passed to
communicate_utf8_async, which drops the wait for the scanner's output but
leaves the gjs process running past a disable or a screen lock. disable()
now force_exit()s the Gio.Subprocess, and a scan that is no longer the
app's own is ignored when its output lands.

Fixes #95

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Jackicus
Jackicus merged commit aa38e51 into main Oct 7, 2026
1 check passed
@Jackicus
Jackicus deleted the fix/scanner-on-disable branch October 7, 2026 03:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

disable() leaves a running scanner subprocess behind

1 participant