After a Sparkle auto-update relaunches cmux, the control socket stops accepting connections because start() early-returns when isRunning is true, without checking if the accept loop thread is actually alive. - Add acceptLoopAlive flag to track accept loop thread liveness - Fix start() early-return to also check acceptLoopAlive, so a dead thread triggers full socket re-creation - Break acceptLoop() after 50 consecutive accept() failures with 10ms backoff instead of tight-spinning forever - Clean up socket in applicationWillTerminate and updaterWillRelaunchApplication for clean teardown before relaunch |
||
|---|---|---|
| .. | ||
| UpdateBadge.swift | ||
| UpdateController.swift | ||
| UpdateDelegate.swift | ||
| UpdateDriver.swift | ||
| UpdateLogStore.swift | ||
| UpdatePill.swift | ||
| UpdatePopoverView.swift | ||
| UpdateTestSupport.swift | ||
| UpdateTestURLProtocol.swift | ||
| UpdateTiming.swift | ||
| UpdateTitlebarAccessory.swift | ||
| UpdateViewModel.swift | ||