pw_thread_freertos: use scheduler state for util & snapshot

Updates the snapshot thread iterator to check the scheduler state
as a precondition for thread iteration.

In addition FreeRTOS & embOS snapshot support was updated to
gracefully support snapshotting before the scheduler has started.

Change-Id: I7abcffd63c6e3e1bf45222c36a3284c6e1204dac
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/54580
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
5 files changed
tree: 0ab3fd9048a97d0c0bc2c7cd5a374b5119d74b09
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_arduino_build/
  7. pw_assert/
  8. pw_assert_basic/
  9. pw_assert_log/
  10. pw_base64/
  11. pw_bloat/
  12. pw_blob_store/
  13. pw_boot/
  14. pw_boot_cortex_m/
  15. pw_build/
  16. pw_bytes/
  17. pw_checksum/
  18. pw_chrono/
  19. pw_chrono_embos/
  20. pw_chrono_freertos/
  21. pw_chrono_stl/
  22. pw_chrono_threadx/
  23. pw_cli/
  24. pw_console/
  25. pw_containers/
  26. pw_cpu_exception/
  27. pw_cpu_exception_cortex_m/
  28. pw_crypto/
  29. pw_docgen/
  30. pw_doctor/
  31. pw_env_setup/
  32. pw_function/
  33. pw_fuzzer/
  34. pw_hdlc/
  35. pw_hex_dump/
  36. pw_i2c/
  37. pw_interrupt/
  38. pw_interrupt_cortex_m/
  39. pw_kvs/
  40. pw_libc/
  41. pw_log/
  42. pw_log_basic/
  43. pw_log_multisink/
  44. pw_log_null/
  45. pw_log_rpc/
  46. pw_log_tokenized/
  47. pw_malloc/
  48. pw_malloc_freelist/
  49. pw_metric/
  50. pw_minimal_cpp_stdlib/
  51. pw_module/
  52. pw_multisink/
  53. pw_package/
  54. pw_persistent_ram/
  55. pw_polyfill/
  56. pw_preprocessor/
  57. pw_presubmit/
  58. pw_protobuf/
  59. pw_protobuf_compiler/
  60. pw_random/
  61. pw_result/
  62. pw_ring_buffer/
  63. pw_router/
  64. pw_rpc/
  65. pw_snapshot/
  66. pw_span/
  67. pw_status/
  68. pw_stm32cube_build/
  69. pw_stream/
  70. pw_string/
  71. pw_sync/
  72. pw_sync_baremetal/
  73. pw_sync_embos/
  74. pw_sync_freertos/
  75. pw_sync_stl/
  76. pw_sync_threadx/
  77. pw_sys_io/
  78. pw_sys_io_arduino/
  79. pw_sys_io_baremetal_lm3s6965evb/
  80. pw_sys_io_baremetal_stm32f429/
  81. pw_sys_io_stdio/
  82. pw_target_runner/
  83. pw_thread/
  84. pw_thread_embos/
  85. pw_thread_freertos/
  86. pw_thread_stl/
  87. pw_thread_threadx/
  88. pw_tls_client/
  89. pw_tls_client_boringssl/
  90. pw_tls_client_mbedtls/
  91. pw_tokenizer/
  92. pw_tool/
  93. pw_toolchain/
  94. pw_trace/
  95. pw_trace_tokenized/
  96. pw_transfer/
  97. pw_unit_test/
  98. pw_varint/
  99. pw_watch/
  100. pw_web_ui/
  101. targets/
  102. third_party/
  103. .bazelignore
  104. .bazelrc
  105. .clang-format
  106. .eslintrc.json
  107. .gitattributes
  108. .gitignore
  109. .gn
  110. .prettierrc.js
  111. .pylintrc
  112. activate.bat
  113. AUTHORS
  114. bootstrap.bat
  115. bootstrap.sh
  116. BUILD.bazel
  117. BUILD.gn
  118. BUILDCONFIG.gn
  119. CMakeLists.txt
  120. LICENSE
  121. modules.gni
  122. OWNERS
  123. package.json
  124. PW_PLUGINS
  125. README.md
  126. tsconfig.json
  127. WORKSPACE
  128. yarn.lock
README.md

See our website: http://pigweed.dev