Jason Simmons 2831e61a9d
[Impeller] Terminate the fence waiter but do not reset it during ContextVK shutdown (#173085)
ContextVK::Shutdown was clearing the context's fence_waiter_. This could
cause crashes if a pending task such as image decoding is still holding
a reference to the context after ContextVK::Shutdown is called.

The image decode task will submit a command buffer through the context,
and CommandQueueVK::Submit will get a null pointer deference when it
tries to use the fence waiter.

This PR changes ContextVK::Shutdown to terminate the fence waiter
instead of clearing it. FenceWaiterVK::Terminate will now stop the
waiter thread and wait for the thread to exit.

This ensures that the fence waiter thread is stopped in
ContextVK::Shutdown even if something else is holding a reference to the
FenceWaiterVK. Tasks like image decoding will now get an error result
instead of a crash when submitting a command buffer after context
shutdown.
2025-08-04 17:58:57 +00:00
..
.gn

OpenSSF Scorecard

buildroot

Build environment for the Flutter engine

This repository is used by the flutter/engine repository. For instructions on how to use it, see that repository's CONTRIBUTING.md file.

To update your checkout to use the latest buildroot, run gclient sync.

To submit patches to this buildroot repository, create a branch, push to that branch, then submit a PR on GitHub for that branch.

To point the engine to a new version of buildroot after your patch is merged, update the buildroot hash in the engine's DEPS file.