forked from Foxyz/sync_replay_project
Windows: every start ended itself after 3 s (1.3.0, 1.3.1)
Win32Window::Create calls Destroy() before it makes the window, which ran FlutterWindow::OnDestroy and armed the 3 s exit timer at launch: the window showed, then the process ended with code 0, no crash, no close lines. The timer is only armed with an engine to tear down. Found and fixed by Fun Maker's agent on Windows (a debugger caught the exit on the timer's thread). The smoke runs missed it (they closed at ~4 s anyway): the app now stays up 10 s, and the scripts require 'closing' and 'quitting' from its own close. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8aa1186d29
commit
e16cf50f2c
6 files changed
+30
-10
No files matched your search
@@ -2293,7 +2293,9 @@ app kills itself (`Process.killPid`, no exit handlers; it only gets there
|
||||
if the close did not go through); the runners end the process 15 s after
|
||||
the first close request (Linux: a `delete-event` handler connected before
|
||||
window_manager's; Windows: the first `WM_CLOSE`), and Windows also 3 s
|
||||
after the window is destroyed, while the engine and plugins go.
|
||||
after the window is destroyed, while the engine and plugins go (only
|
||||
with an engine: `Win32Window::Create` runs `OnDestroy` before the window
|
||||
exists, and a timer armed there ended every start at 3 s).
|
||||
|
||||
## Logging
|
||||
|
||||
|
||||
+6
-4
@@ -210,10 +210,12 @@ updater tests, the release build and the close smoke run on that build
|
||||
`STARSYNC_SMOKE=<clip>` (a 5 s clip from ffmpeg, else a WAV the script
|
||||
writes) under its own profile (`STARSYNC_PROFILE=smoke`), opens the clip
|
||||
in a player with a video output through the media pipeline
|
||||
(`platform/smoke.dart`), plays a second and closes the normal way; the
|
||||
steps go to `STARSYNC_SMOKE_OUT` (`start`, `opened <ms> render=<mode>`,
|
||||
`closing`, or `skip` / `fail` with why). It fails when the app does not
|
||||
exit within 45 s or leaves a `starsync` process, skips with a warning
|
||||
(`platform/smoke.dart`), plays it, stays up 10 s from its start and
|
||||
closes the normal way; the steps go to `STARSYNC_SMOKE_OUT` (`start`,
|
||||
`opened <ms> render=<mode>`, `closing`, `quitting` just before the
|
||||
window closes, or `skip` / `fail` with why). It fails when the app ends
|
||||
by itself before `closing` or never reaches `quitting`, does not exit
|
||||
within 45 s or leaves a `starsync` process, skips with a warning
|
||||
when the runner cannot bring the app or its video output up, and prints
|
||||
the `smoke:`, `close:` and `mpv: render` lines of the app log.
|
||||
`tool/smoke_linux.sh` is the same on Linux (needs a display; after
|
||||
|
||||
Reference in new issue
Block a user