[kernel] Add SignalObserver class.

This CL adds a new SignalObserver class, as a replacement to
StateObserver.

SignalObserver is a simplified StateObserver: instead of having
callbacks on initialisation, state changes, cancellation, and removal,
it simply has a OnMatch() and OnCancel() method which are called
precisely once on cancellation or match.

This CL adds support in the Dispatcher class for SignalObserver while
also keeping StateObserver support. This leads to some duplication, but
it is strictly temporary: StateObserver is removed in
I6fba57857cf5d5cdf98b1556a6f87bad1d44cb65 after migration of users,
leaving just the simplified interface.

Bug: 51463
Change-Id: I6fba57857cf5d5cdf98b1556a6f87bad1d44cb65
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/391013
Commit-Queue: David Greenaway <dgreenaway@google.com>
Testability-Review: David Greenaway <dgreenaway@google.com>
Reviewed-by: Carlos Pizano <cpu@google.com>
Reviewed-by: George Kulakowski <kulakowski@google.com>
4 files changed
tree: 80eb5a9ad05213c5326cba1fe4803f5dafbf340b
  1. boards/
  2. build/
  3. bundles/
  4. cts/
  5. docs/
  6. examples/
  7. garnet/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .gitattributes
  18. .gitignore
  19. .gn
  20. .style.yapf
  21. AUTHORS
  22. BUILD.gn
  23. CODE_OF_CONDUCT.md
  24. CONTRIBUTING.md
  25. LICENSE
  26. OWNERS
  27. PATENTS
  28. README.md
  29. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.