nuttx/arch
fangzhenwei e4ed6156ca arch/sim: fix incomplete HCI socket data reading in simulator interrupt handler
The sim_bthcisock_interrupt() handler for Bluetooth HCI sockets in the simulatorwas using
an if statement to check for available data on the HCI socket. Thismeant that only a single
packet would be read and processed per interrupt trigger,even if multiple packets were waiting
in the socket buffer.

This led to incomplete data processing: unread packets would remain in the bufferuntil the next
interrupt tick, causing delayed handling of Bluetooth HCI events/commands,packet backlogs,
or missed data in high-throughput scenarios.

This fix replaces the if with a while loop to:

1. Continuously check for and read available data from the HCI socket until no more
   packets are present in the buffer.
2. Ensure all pending HCI packets are processed in a single interrupt handler invocation.
3. Eliminate packet backlogs and reduce latency in Bluetooth HCI communication.

The change maintains the same core data reception logic (bthcisock_receive()) butensures it runs
for all available packets, improving the reliability and responsivenessof the simulator's Bluetooth HCI socket implementation.

Signed-off-by: chao an <anchao.archer@bytedance.com>
2026-02-26 08:15:28 -03:00
..
arm arch/arm/src/stm32wl5: CMake build implemented for STM32 STM32WL5 2026-02-26 06:20:41 +08:00
arm64 arm64/cmake: fix typo in CMAKE_STRIP flag 2026-02-26 12:12:35 +01:00
avr Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00
ceva protect: move us_heap to userspace_data_s 2026-02-02 11:06:53 +08:00
dummy
hc Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00
mips Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00
misoc Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00
or1k Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00
renesas Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00
risc-v arch/delays: Invalid default value for BOARD_LOOPSPERMSEC 2026-02-25 15:00:03 -03:00
sim arch/sim: fix incomplete HCI socket data reading in simulator interrupt handler 2026-02-26 08:15:28 -03:00
sparc sched/signal: Optimize code logic 2026-01-27 21:24:31 +08:00
tricore serial/uart_rpmsg: add _raw version of driver 2026-02-23 09:19:57 -03:00
x86 Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00
x86_64 Makefile: Remove make depend files by make distclean 2026-02-16 16:27:57 +01:00
xtensa arch/xtensa/espressif: Fix SHA errors 2026-02-24 12:57:46 +01:00
z16 sched/signal: Optimize code logic 2026-01-27 21:24:31 +08:00
z80 netdev_driver: add carrier_on to xxx_ifup where carrier_on is absent 2026-02-02 13:23:05 +08:00
CMakeLists.txt arch/z80: migrate to SPDX identifier 2024-12-02 17:23:25 +08:00
Kconfig arch/delays: Invalid default value for BOARD_LOOPSPERMSEC 2026-02-25 15:00:03 -03:00