bug : chartread does not terminate when closing ICCery in stage 3 without hitting cancel #147
Notifications
Due Date
No due date set.
Depends on
Reference: gronod/ICCery#147
Reference in New Issue
Block a user
Description
When the user is in Stage 3 (Interactive Measurement) with an active
chartreadprocess and closes the ICCery window (or quits the app) without pressing Cancel, thechartreadsubprocess is left running.The OS process continues to hold the instrument, keep USB/serial resources open, and may still be waiting on stdin prompts. Subsequent launches of ICCery (or other tools) can then fail to open the spectrophotometer until the orphaned process is killed manually.
Cancel works correctly because the UI explicitly calls
kill_process. Window/app close does not.Steps to Reproduce
chartreadis spawned; Cancel button becomes visible).ps).Expected Behaviour
chartread_*process) are terminated.chartread(or other sidecar) processes remain.Actual Behaviour
chartreadcontinues running after ICCery has exited.invoke("kill_process", { id })) or if it is killed externally.Technical Notes
ProcessManageralready supports cooperative kill via a oneshot channel +child.start_kill()(src-tauri/src/process_manager.rs→kill()).src/js/chartread.js→btnCancelclick handler).RunEvent::Exit/WindowEvent::CloseRequested(or equivalent) handler that walks active process IDs and callskill/kill_allon shutdown.chartreadis interactive and holds the instrument, an orphan is particularly painful compared to short-lived tools liketargenorcolprof.Suggested Fix
RunEvent::Exitor window close) that terminates every process still registered inProcessManager.kill()behaviour.kill_all()helper onProcessManagerfor clarity.Acceptance Criteria
chartread(or other Argyll) process running.Environment
chartreadin Stage 3.Dependencies & Ordering