mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-29 12:17:14 -06:00
The GPU start tests release the start file's lock and take it again. portal_save's mock_portal starts dbus-daemon meanwhile, and until a child runs its program it holds a copy of every open descriptor, so the lock outlived the test's own handle: the next start found the file locked, took it as another copy of the app running and left nothing out. Parallel runs of the app's tests failed 12 times in 20. A test-only RwLock: mock_portal holds it exclusively while it spawns, and each GPU start test holds it shared for the whole test. 0 failures in 70 parallel runs.