[display][coordinator] Deregister the engine listener in `PrepareStop()`.

Previously, the display coordinator Controller deregistered it
from the display engine at the Controller dtor. This caused a
race between the coordinator and the engine driver at destruction.

This change moves the deregistration logic from the destructor to
the `PrepareStop()` method where both drivers are guaranteed to
be alive.

Change-Id: Ic3b53fe243ae26cf8c3404a93a0851f861733e7e
Test: dm_reboot_bootloader_test
Multiply: host_x64/obj/src/tests/reboot/dm_reboot_bootloader_test.sh: 100
Multiply: host_x64/obj/src/tests/reboot/dm_reboot_recovery_test.sh: 100
Multiply: host_x64/obj/src/tests/reboot/dm_reboot_test.sh: 100
Bug: 367330135
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1133172
Commit-Queue: Victor Costan <costan@google.com>
Fuchsia-Auto-Submit: Victor Costan <costan@google.com>
Reviewed-by: Victor Costan <costan@google.com>
1 file changed
tree: 9c30a51adb872d1b7cf6010593d2efb0d8357d3c
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. infra/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gitmodules
  21. .gn
  22. .ignore
  23. analysis_options.yaml
  24. AUTHORS
  25. BUILD.gn
  26. CODE_OF_CONDUCT.md
  27. CONTRIBUTING.md
  28. fuchsia.code-workspace
  29. LICENSE
  30. OWNERS
  31. PATENTS
  32. pyproject.toml
  33. pyrightconfig.json
  34. README.md
  35. rustfmt.toml
  36. shac.star
  37. shac.textproto
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.