[sessionmgr] Properly employ deferred_action.

deferred_action is meant to defer an action until the end of some
scope, but we use it merely to defer it to some time later, but
decidedly not to the time of destruction, at which time it must
not execute at all if it hasn't yet.

So we use a simple fit::function<> instead that we simply protect
against double invocation using a mutable bool flag on the capture
list. This is especially simple because the capture list already
is mutable.

Amends https://fuchsia-review.googlesource.com/c/peridot/+/240436

TESTED=/pkgfs/packages/modular_tests/0/test/run_modular_tests.sh

Change-Id: I8851a349bbd4c55312fc59c443f74f98145bd2ea
2 files changed
tree: 1ca9744599be0500510e86b99e72c31f54df9958
  1. .clang-format
  2. .clang-tidy
  3. .gitignore
  4. AUTHORS
  5. BUILD.gn
  6. CONTRIBUTING.md
  7. LICENSE
  8. PATENTS
  9. README.md
  10. bin/
  11. boards/
  12. build/
  13. cloud/
  14. docs/
  15. examples/
  16. infra/
  17. lib/
  18. navbar.md
  19. packages/
  20. products/
  21. public/
  22. tests/
  23. third_party/
  24. web/
README.md

Peridot

Peridot is a framework for composed, intelligent and distributed user experiences.

Applications not explicitly designed to interoperate (and possibly implemented in different programming languages) are ephemerally downloaded and dynamically composed to run in a shared context. The framework manages application lifecycle, resources and view hierarchy; and well as context and suggestion infrastructure.

State of Peridot experiences is transparently synchronized across user devices using a distributed offline-first storage system.

Read more