fix(single-instance): release the lock on cleanup_before_exit instead of RunEvent::Exit (#3482)

* add configurable destroy_on_exit to single instance plugin

* add change file

* document destroy_on_exit

* move the destroy to rely on the Resource close

* add integration test

* fix android/ios

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
This commit is contained in:
JGuest121andLucas Nogueira authored and GitHub committed 2026-10-16 16:06:24 -03:00
1 parent 8dc878fe34
commit aedd883cf3
8 files changed
+316 -68

No files matched your search

+4 -3
View File
@@ -176,10 +176,11 @@ jobs:
# Only on the platforms we actually test on, since cargo skips doc tests when cross compiling.
elif [ "$COMMAND" = test ] && ! $RUNNER test --doc --package "$package" --target "$TARGET" "${features[@]}"; then
failed+=("$package (doc tests)")
# The D-Bus test is ignored by default because it needs its own session bus, and it
# is compiled out with `--all-features` (the `semver` feature changes the bus name).
# The D-Bus tests are ignored by default because they need their own session bus, and
# `dbus_errors` is compiled out with `--all-features` (the `semver` feature changes the
# bus name). `instance_lock` runs with the other tests on Windows and macOS.
elif [ "$package" = tauri-plugin-single-instance ] && [ "$COMMAND" = test ] && [[ "$TARGET" == *-linux-* ]] \
&& ! dbus-run-session -- $RUNNER test --package "$package" --target "$TARGET" --test dbus_errors -- --ignored; then
&& ! dbus-run-session -- $RUNNER test --package "$package" --target "$TARGET" --test dbus_errors --test instance_lock -- --ignored; then
failed+=("$package (D-Bus tests)")
fi
echo "::endgroup::"