zephyr/subsys/shell
Michał Barnaś 01a01de594 shell: fix polling TXDONE signal by multiple threads
This patch fixes the issue that can cause a deadlock in shell.
When two threads simultaneously poll the TXDONE signal, only one
of them will receive it, leaving second one stalled.
The problem was that shell's context contains k_poll_event objects that
were polled by multiple threads. Polling it overwrites the poller field
that was set by previous thread.
Instead, the k_poll_event object must be created on the stack by every
thread that wants to poll the TXDONE signal.
This makes sure that no thread will be left waiting for this signal
forever.

Signed-off-by: Michał Barnaś <mb@semihalf.com>
2021-09-23 04:18:22 -04:00
..
modules shell: add devmem load command 2021-08-13 10:13:36 -04:00
CMakeLists.txt shell: add getopt library support 2021-03-01 09:50:32 -05:00
Kconfig shell: optionally configure priority of the shell thread 2021-07-27 19:11:47 -04:00
Kconfig.backends shell: uart: Add waiting on DTR signal before sending data 2021-09-02 19:39:16 -04:00
Kconfig.template.shell_log_queue_size license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
Kconfig.template.shell_log_queue_timeout license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
shell.c subsys/shell: Use use_colors flag for shell instance 2021-09-02 10:47:57 +02:00
shell_cmds.c shell: allow disabling VT100 commands 2021-06-11 09:22:31 +02:00
shell_dummy.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
shell_fprintf.c shell: internal api update: fprintf 2021-01-14 12:07:25 +01:00
shell_getopt.c shell: add getopt library support 2021-03-01 09:50:32 -05:00
shell_help.c coccinelle: Remove extra semicolon 2021-03-25 11:35:30 -05:00
shell_help.h shell: make detecting help option optional 2021-03-01 09:50:32 -05:00
shell_history.c shell: internal api update: history module 2021-01-14 12:07:25 +01:00
shell_log_backend.c shell: log_backend: Fix fifo cleanup 2021-05-13 14:04:08 +02:00
shell_ops.c shell: fix polling TXDONE signal by multiple threads 2021-09-23 04:18:22 -04:00
shell_ops.h shell: allow disabling VT100 commands 2021-06-11 09:22:31 +02:00
shell_rtt.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
shell_telnet.c net: telnet: Fix character mode handling 2021-04-19 17:12:23 +02:00
shell_telnet_protocol.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
shell_uart.c shell: uart: Add waiting on DTR signal before sending data 2021-09-02 19:39:16 -04:00
shell_utils.c toolchain: migrate iterable sections calls to the external API 2021-08-12 17:47:04 -04:00
shell_utils.h shell: optionally set shell root command using Kconfig 2021-06-16 10:41:17 +02:00
shell_vt100.h shell: add Ctrl+N and Ctrl+P meta-keys 2019-06-24 07:17:53 -04:00
shell_wildcard.c coccinelle: Remove extra semicolon 2021-03-25 11:35:30 -05:00
shell_wildcard.h shell: internal api update: wildcards 2021-01-14 12:07:25 +01:00