[Backport v4.0-branch] shell: fix unsafe API calls and add configurable autoflush behavior #84440
+27
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport b0a0feb~2..b0a0feb from #84290.
Fixes #84274
Introduced a new Kconfig option SHELL_PRINTF_AUTOFLUSH to allow
configuring the autoflush behavior of shell printing functions.
Updated Z_SHELL_FPRINTF_DEFINE to use the
CONFIG_SHELL_PRINTF_AUTOFLUSH setting instead of hardcoding
the autoflush behavior to true.
Fixes an issue where the shell API could block indefinitely when called
from threads other than the shell's processing thread, especially when
the transport (e.g. USB CDC ACM) was unavailable or inactive.
Replaced k_mutex_lock calls with an indefinite timeout (K_FOREVER)
by using a fixed timeout (K_MSEC(SHELL_TX_MTX_TIMEOUT_MS)) in shell
API functions to prevent indefinite blocking.