pw_emu: core: Let the OS terminate foreground emulator processes

When the CLI runs the emulator in foreground there is no need to
explicitly terminate the emulator processes, the OS will do that for
us when the CLI process is terminated as long as the CLI runs attached
to a console.

Foreground CLI tests do not have a console attached (due to missing
pty support on Windows) and instead are using plain pipes. Because of
that logic was added to the core code to terminate the emulator
processes when it was running in foreground.

However, foreground tests were refactored to run the CLI as a session
leader and that allows clean termination for emulator processes
directly from the tests.

Thus it is no longer necessary to explicitly terminate emulator
processes in the core code when running in foreground.

Change-Id: Ib16578a94a757dcde3bf3744253745a9de52ffad
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/175638
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Commit-Queue: Octavian Purdila <tavip@google.com>
1 file changed
tree: bfbe3a91611e202cc3a7c403ca3503925acb6137
  1. .allstar/
  2. .vscode/
  3. build_overrides/
  4. docker/
  5. docs/
  6. kudzu/
  7. pw_alignment/
  8. pw_allocator/
  9. pw_analog/
  10. pw_android_toolchain/
  11. pw_arduino_build/
  12. pw_assert/
  13. pw_assert_basic/
  14. pw_assert_log/
  15. pw_assert_tokenized/
  16. pw_assert_zephyr/
  17. pw_async/
  18. pw_async_basic/
  19. pw_base64/
  20. pw_bloat/
  21. pw_blob_store/
  22. pw_bluetooth/
  23. pw_bluetooth_hci/
  24. pw_bluetooth_profiles/
  25. pw_boot/
  26. pw_boot_cortex_m/
  27. pw_build/
  28. pw_build_info/
  29. pw_build_mcuxpresso/
  30. pw_bytes/
  31. pw_checksum/
  32. pw_chre/
  33. pw_chrono/
  34. pw_chrono_embos/
  35. pw_chrono_freertos/
  36. pw_chrono_rp2040/
  37. pw_chrono_stl/
  38. pw_chrono_threadx/
  39. pw_chrono_zephyr/
  40. pw_cli/
  41. pw_compilation_testing/
  42. pw_console/
  43. pw_containers/
  44. pw_cpu_exception/
  45. pw_cpu_exception_cortex_m/
  46. pw_crypto/
  47. pw_digital_io/
  48. pw_digital_io_mcuxpresso/
  49. pw_digital_io_rp2040/
  50. pw_docgen/
  51. pw_doctor/
  52. pw_emu/
  53. pw_env_setup/
  54. pw_file/
  55. pw_function/
  56. pw_fuzzer/
  57. pw_hdlc/
  58. pw_hex_dump/
  59. pw_i2c/
  60. pw_i2c_linux/
  61. pw_i2c_mcuxpresso/
  62. pw_ide/
  63. pw_interrupt/
  64. pw_interrupt_cortex_m/
  65. pw_interrupt_xtensa/
  66. pw_interrupt_zephyr/
  67. pw_intrusive_ptr/
  68. pw_kvs/
  69. pw_libc/
  70. pw_log/
  71. pw_log_android/
  72. pw_log_basic/
  73. pw_log_null/
  74. pw_log_rpc/
  75. pw_log_string/
  76. pw_log_tokenized/
  77. pw_log_zephyr/
  78. pw_malloc/
  79. pw_malloc_freelist/
  80. pw_metric/
  81. pw_minimal_cpp_stdlib/
  82. pw_module/
  83. pw_multisink/
  84. pw_package/
  85. pw_perf_test/
  86. pw_persistent_ram/
  87. pw_polyfill/
  88. pw_preprocessor/
  89. pw_presubmit/
  90. pw_protobuf/
  91. pw_protobuf_compiler/
  92. pw_random/
  93. pw_result/
  94. pw_ring_buffer/
  95. pw_router/
  96. pw_rpc/
  97. pw_rpc_transport/
  98. pw_rust/
  99. pw_snapshot/
  100. pw_software_update/
  101. pw_span/
  102. pw_spi/
  103. pw_spi_mcuxpresso/
  104. pw_status/
  105. pw_stm32cube_build/
  106. pw_stream/
  107. pw_stream_shmem_mcuxpresso/
  108. pw_stream_uart_linux/
  109. pw_stream_uart_mcuxpresso/
  110. pw_string/
  111. pw_symbolizer/
  112. pw_sync/
  113. pw_sync_baremetal/
  114. pw_sync_embos/
  115. pw_sync_freertos/
  116. pw_sync_stl/
  117. pw_sync_threadx/
  118. pw_sync_zephyr/
  119. pw_sys_io/
  120. pw_sys_io_ambiq_sdk/
  121. pw_sys_io_arduino/
  122. pw_sys_io_baremetal_lm3s6965evb/
  123. pw_sys_io_baremetal_stm32f429/
  124. pw_sys_io_emcraft_sf2/
  125. pw_sys_io_mcuxpresso/
  126. pw_sys_io_rp2040/
  127. pw_sys_io_stdio/
  128. pw_sys_io_stm32cube/
  129. pw_sys_io_zephyr/
  130. pw_system/
  131. pw_target_runner/
  132. pw_thread/
  133. pw_thread_embos/
  134. pw_thread_freertos/
  135. pw_thread_stl/
  136. pw_thread_threadx/
  137. pw_thread_zephyr/
  138. pw_tls_client/
  139. pw_tls_client_boringssl/
  140. pw_tls_client_mbedtls/
  141. pw_tokenizer/
  142. pw_tool/
  143. pw_toolchain/
  144. pw_toolchain_bazel/
  145. pw_trace/
  146. pw_trace_tokenized/
  147. pw_transfer/
  148. pw_unit_test/
  149. pw_unit_test_zephyr/
  150. pw_varint/
  151. pw_watch/
  152. pw_web/
  153. pw_work_queue/
  154. seed/
  155. targets/
  156. third_party/
  157. ts/
  158. zephyr/
  159. .bazelignore
  160. .bazelrc
  161. .black.toml
  162. .clang-format
  163. .clang-tidy
  164. .eslintrc.cjs
  165. .git-blame-ignore-revs
  166. .gitattributes
  167. .gitignore
  168. .gn
  169. .mypy.ini
  170. .prettierignore
  171. .prettierrc.cjs
  172. .pw_ide.yaml
  173. .pylintrc
  174. activate.bat
  175. Android.bp
  176. AUTHORS
  177. bootstrap.bat
  178. bootstrap.sh
  179. BUILD.bazel
  180. BUILD.gn
  181. BUILDCONFIG.gn
  182. CMakeLists.txt
  183. jest.config.ts
  184. Kconfig.zephyr
  185. LICENSE
  186. modules.gni
  187. OWNERS
  188. package-lock.json
  189. package.json
  190. pigweed.json
  191. PIGWEED_MODULES
  192. README.md
  193. rollup.config.js
  194. tsconfig.json
  195. WORKSPACE
README.md

Pigweed

Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.

For more information please see our website: https://pigweed.dev/.

Links